您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

sp_helpdb

语法


sp_helpdb [<dbname> [, <order>][, verbose]]

参数

<dbname>

是将要报告其信息的数据库的名称。如果没有此可选参数,sp_helpdb 将报告所有数据库的有关信息。<dbname> 可以包括通配符,以返回匹配指定模式的所有数据库。

<order>

输出的缺省顺序是按 lstart 顺序,即创建或改变数据库的顺序。使用 device_name 和 <dbname> 将按 device_name 顺序显示 sp_helpdb。

verbose

sp_helpdb 输出显示关于数据库的附加详细信息。

示例

示例 1

显示 SAP ASE 服务器中所有数据库的有关信息:


sp_helpdb

name          db_size  owner  bid  created        status
------------- -------- ----- ----- -------------- --------------------
master         24.0 MB   sa  1      Jan 07, 2004  mixed log and data
model          8.0 MB    sa  3      Jan 07, 2004  mixed log and data
pubs2          8.0 MB    sa  4      Jan 21, 2004  trunc log on chkpt,
                                                  mixed log and data
sybsystemdb    8.0 MB    sa  31513  Jan 07, 2004  mixed log and data
sybsystemprocs 112.0 MB  sa  31514  Jan 07, 2004  trunc log on chkpt, mixed
                                                  log and data
tempdb          8.0 MB   sa  2      Feb 24, 2004  select into/bulkcopy/ 
                                                  pllsort, trunc log on
                                                  chkpt, mixed log| and 
                                                  data
(1 row affected)
(return status = 0

示例 2

从 pubs2 内发出,显示有关 pubs2 数据库的信息,并且包括段信息:


1> use pubs2
2> go
1> sp_helpdb pubs2
2> go

name   db_size  owner  dbid  created        status
------ -------- ------ ----- ------------- -------------------------------
pubs2  20.0 MB   sa     4     Apr 13, 2005  trunc log on chkpt, mixed log 
                                            and data
(1 row affected)
pubs2
device_fragments   size    usage          created            free kbytes
------------------ ------- ------------- ------------------- -------
master             10.0 MB  data and log  Apr 13 2005 10:29AM  2304
pubs_2_dev         10.0 MB  data and log  Apr 13 2005 10:33AM  9888

device         segment
-------------  ----------------------------------------------------
master         default
master         logsegment 
master         system
pubs_2_dev     default
pubs_2_dev     logsegment
pubs_2_dev     system
pubs_2_dev     titleseg1
pubs_2_dev     titleseg2
pubs_2_dev     titleseg3
pubs_2_dev     titleseg4
pubs_2_dev     titleseg5 
return status = 0)

示例 3

不是从 pubs2 内发出,显示有关 pubs2 数据库的信息:


sp_helpdb pubs2

name  db_size  owner  dbid    created      status
------------ ------------- ------------------------ ----- ----------------
pubs2   20.0 MB  sa      4   Jan 21, 2004  trunc log on chkpt, single user,
                                            mixed log and data
(1 row affected)
device_fragments  size    usage         created              free kbytes
----------------  ----    -----         -------              -------------
master            10.0 MB  data and log  Apr 13 2005  10:29AM  2304
pubs_2_dev        10.0 MB  data and log  Apr 13 2005  10:33AM  9888  
(return status = 0)

示例 4

<order> 参数指定为 device_name,以字母顺序显示 mydb 的设备片段,覆盖 sp_helpdb 的缺省排序顺序:


sp_helpdb mydb, device_name

name             db_size  owner  dbid  created      status
---------------  -------  -----  ----  -----------  -----------
mydb             4.5 MB    sa      5     Feb 27, 2003   no options set 

(1 row affected)
device_fragments  size     usage       created                 free kbytes
----------------  -----    ------      --------  ------------------ 
A                 1.5 MB   data only   Feb 27 2003   7:50AM    1530
B                 1.0 MB   log only    Feb 27 2003   7:50AM not applicable
C                 2.0 MB   data only   Feb 27 2003   7:50AM    846

示例 5

显示 pubtune 数据库的行锁升级属性集:


sp_helpdb pubtune

name    attribute_class  attribute      int_value char_value  comments
----    ---------------  ---------      --------- ----------  ------
pubtune lock strategy   row lock promotion  NULL     PCT = 95, LWM = 300, 
                                                               HWM = 300

示例 6

显示数据库是否为 status 列下用户创建的临时数据库:


sp_helpdb "mytempdb3"

name    db_size owner dbid created    status
-------  ------- ----- ---- -------     -----
mytempdb 32.0 MB sa    7    Dec 2, 2001 select into/bulkcopy/pllsort, trunc
                                       log on chkpt, user created temp db

示例 7

报告正在进行加密的数据库的状态:


sp_helpdb

name        db_size    owner dbid  created      durability
    lobcomplvl inrowlen
status
……
test_db     6.0 MB     sa       4  Aug 07, 2013 full
             0 NULL
    encryption in progress: 35%
……

示例 8

报告部分加密的数据库的状态:


sp_helpdb

name        db_size    owner dbid  created      durability
    lobcomplvl inrowlen
status
……
test_db     6.0 MB     sa       4  Aug 07, 2013 full
             0 NULL
    encrypted partly

……

示例 9

报告正在进行解密的数据库的状态:


sp_helpdb

name        db_size    owner dbid  created      durability
    lobcomplvl inrowlen
status
……
test_db     6.0 MB     sa       4  Aug 07, 2013 full
             0 NULL
    decrypted partly

……

示例 10

显示有关用户创建的临时数据库的持久性信息。例如,如果创建数据库:


create temporary database tempdb_explicit on default = 50 
with durability = no_recovery

sp_helpdb 显示此输出:


sp_helpdb tempdb_explicit
 name db_size owner dbid created durability lobcomplvl inrowlen status 
 ---- ------- ----- ---- ------- ---------- ---------- -------- ------ 
 
 tempdb_explicit  50.0 MB  sa  7    Dec 05, 2012 no_recovery  0  NULL
         select into/bulkcopy/pllsort, trunc log on chkpt, 
         mixed log and data, user-created enhanced performance 
         temp db, allow wide dol rows 

(1 row affected)
device_fragments   size      usage         created          free  kbytes 
----------------- ------ -------------- ------------------ ------------- 
 master          50.0 MB  data and log  Dec 5 2012 8:49PM    49216 
(return status = 0)

示例 11

显示有关 pubs2 的详细信息,这里启用了数据行高速缓存和快照隔离:


sp_helpdb pubs2, lstart, verbose

name   db_size       owner dbid created
 ----- ------------- ----- ---- ------------
 pubs2 36.0 MB       sa    6    Aug 11, 2016

(1 row affected)

 database_property status/value
 --------------------- --------------
 data row caching enabled
 durability full
 in-memory row storage enabled
 inrowlen NULL
 lobcomp_lvl 0
 mixed log and data enabled
 snapshot isolation enabled
 trunc log on chkpt enabled

 device_fragments size          usage        created             free_kbytes
 ---------------- ------------- ------------ ------------------- ----------------
 imrs_dev1        8.0 MB        imrslog only Aug 11 2016 12:54AM 8144
 master           28.0 MB       data and log Aug 11 2016 12:53AM 9568

 imrscache
 -----------
 imrs_cache1

用法

使用 sp_helpdb 时,还存在一些其它注意事项:

  • 在完全加密的数据库上运行 sp_helpdb 时,它会报告该数据库的加密状态:

    a) 已加密

    b) 正在进行加密

    c) 正在进行解密

    如果数据库正在加密或解密,sp_helpdb 会报告已完成工作的百分比。

  • sp_helpdb 在给出 <dbname> 的情况下报告指定数据库的有关信息。如果没有为 <dbname> 提供任何值,则 sp_helpdb 报告 master.dbo.sysdatabases 中列出的所有数据库的有关信息。

  • sp_helpdb 报告所有数据库特定的属性和设置,例如:数据库是否脱机、压缩类型、大对象压缩级别、行内大对象长度、行锁升级阈值(如果为数据库定义了其中任何值)、启用行存储高速缓存等。

  • 如果在数据库中启用异步日志服务,sp_helpdb 输出中的 attribute 列将显示“async log srv”。

  • 有关异步日志服务的详细信息,请参阅 sp_dboption 以及《性能和调优:优化程序》中的高级优化工具。

  • 对于专用日志数据库中的日志段磁盘区段,sp_helpdb 在其每份磁盘区段报告中为可用空间字段发出“not applicable”。sp_helpdb 还包括标题为 free pages 的列,它是日志段所具有的可用页的数目值。

  • (Cluster Edition)如果指定的数据库是由远程实例拥有的本地临时数据库,则 sp_helpdb 将不会显示与设备相关的信息。

  • <dbname> 可以包括通配符,以返回匹配指定模式的所有数据库。

  • <dbname> 执行 sp_helpdb <dbname> 将会在报告中包括可用空间和段信息。

  • sp_helpdb 显示有关数据库的属性的信息,给出属性的类、名称、整数值、字符值和注释(如果定义了任何属性)。示例 3 显示 pubs2 数据库的高速缓存绑定属性。

  • 用 for load 选项创建的数据库在来自 sp_helpdb 的输出中具有“don't recover”的状态。

  • 在启用组件集成服务后,sp_helpdb 为指定数据库或所有数据库列出缺省存储位置。如果没有缺省存储位置,则显示指示“NULL”。

  • sp_helpdb 的 status 列包括以下对数据库持久性的说明:

    a) user created temp db – 用户创建的常规临时数据库(即未指定 durability 参数而创建的数据库)。

    b) user-created enhanced performance temp db – 用户使用 no_durability 参数显式创建的临时数据库。由于使用 no_durability 创建的数据库受许可的限制,它在许可到期后不能进行联机。

  • sp_helpdb 报告启用了 row_storage 的数据库的信息。

    a) 数据库是否启用了内存行存储。

    b) 高速缓存(如果存在)的名称。

    c) 新创建的表缺省情况下是否启用行高速缓存。

    d) 新创建的表缺省情况下是否启用快照隔离。

    e) 快照隔离是否使用临时数据库版本存储或 row_storage 高速缓存以存储行版本。