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

sp_showoptstats

语法


sp_showoptstats  
[[<database_name>.[<owner>].]{<table_name>|<prs_name>}]
,[<column_name>], [h]

参数

<database_name>

为数据库的名称,sp_showoptstats 显示此数据库的统计信息和直方图。<dbname> 具有以下限制:

  • 不支持跨数据库执行

  • 您目前必须在指定数据库中才能执行 sp_showoptstats。

  • 如果未指定数据库,sp_showoptstats 则显示当前数据库的统计信息和直方图

    <owner>

    是表所有者的名称。若未指定所有者的名称,则当前用户或 dbo 可以用来显示统计信息和直方图。

    <table_name>

    sp_showoptstats <table_name> 具有这些限制的表的名称:

    如果未指定表,sp_showoptstats 则显示当前数据库中所有表的统计信息和直方图。然而,为了缩短输出长度,sp_showoptstats 并不显示数据库级别的列统计信息和直方图。

    <table_name> 必须存在于当前数据库中。

    <prs_name>

    显示正在显示统计信息的预计算结果集的名称。

  • 没有参数 – 包含当前数据库中所有预计算结果集的统计信息。

  • 预计算结果集 – 包含预计算结果集的统计信息。

    <column_name>

    为列的名称,SAP ASE 服务器显示此列的统计信息和直方图。如果未指定列,SAP ASE 服务器则显示指定表的所有列和索引的统计信息。如果指定 <column_name>,sp_showoptstats 仅显示该列的统计信息和直方图

    h

    显示过程的帮助信息。

    示例

    示例 1

    显示 pubs2 数据库中所有用户表的统计信息:

    
    1> use pubs2
    2> go
    1> sp_showoptstats 'pubs2..publishers'
    2> go
    

    示例 2

    以 XML 格式显示 pubs2 数据库中 publishers 表的统计信息和直方图:

    
    1> sp_showoptstats publishers
    
    
     <?xml version="1.0" encoding="UTF-8"?>
    <optStats>
      <procVersion>sp_showoptstats/1.1/AnyPlatform/AnyOS/Tues April 3 14:21:21
          2012</procVersion>
      <serverVersion>SAP ASE/15.7.0/EBF 20161 SMP ESD#02
          Prelim#2/P/x86_64/Enterprise Linux/ase157x/3087/64-bit/FBO/Tue
          May 15 05:35:01 2012</serverVersion>
        <serverName></serverName>
        <specifiedDatabase>pubs2</specifiedDatabase>
        <specifiedTableOwner></specifiedTableOwner>
        <specifiedTable>publishers</specifiedTable>
        <specifiedCol></specifiedCol>
        <tables>
            <tableOwner>dbo</tableOwner>
            <tableName>publishers</tableName>
            <clusteredIndStats>
                <indName>pubind</indName>
                <colList>"pub_id"</colList>
                <stats>
                    <pgCnt>1</pgCnt>
                    <emptyPgCnt>0</emptyPgCnt>
                    <rowCnt>3.0000000000000000</rowCnt>
                    <fwdRowCnt>0.0000000000000000</fwdRowCnt>
                    <delRowCnt>0.0000000000000000</delRowCnt>
                    <CRCnt>1.0000000000000000</CRCnt>
                    <oamAllocPgCnt>2</oamAllocPgCnt>
                    <firstExtLeafPgs>0</firstExtLeafPgs>
                    <dataRowSz>39.3333333333333357</dataRowSz>
                    <indHeight>1</indHeight>
                    <joinDegree>0.0000000000000000</joinDegree>
                    <unusedPgCnt>14</unusedPgCnt>
                    <oamPgCnt>1</oamPgCnt>
                    <derivedStats>
                        <clusterRatio>0.0000000000000000</clusterRatio>
                        <spaceUtil>0.0072162426614481</spaceUtil>
                        <IOEfficiency>0.5000000000000000</IOEfficiency>
                    </derivedStats>
                </stats>
            </clusteredIndStats>
            <colStats>
                <colName>pub_id</colName>
                <lastUpdate>May 15 2012  4:44:40:136PM</lastUpdate>
                <cellDensity>0.3333333333333333</cellDensity>
                <totalDensity>0.3333333333333333</totalDensity>
                <select>default used (0.33)</select>
                <inBetSel>default used (0.25)</inBetSel>
                <rangeVal>0.3333333333333333</rangeVal>
                <totalVal>0.3333333333333333</totalVal>
                <avgColWidth>default used (4.00)</avgColWidth>
                <statsVer>4</statsVer>
                <histogram>
                    <colName>pub_id</colName>
                    <dataType>char(4)</dataType>
                    <requestedStepCnt>20</requestedStepCnt>
                    <actualStepCnt>6</actualStepCnt>
                    <samplingPct>0</samplingPct>
                    <TuningFact>20</TuningFact>
                    <steps>
                        <step>1</step>
                        <weight>0.00000000</weight>
                        <equation><</equation>
                        <value>"0736"</value>
                    </steps>
                    <steps>
                        <step>2</step>
                        <weight>0.33333334</weight>
                        <equation>=</equation>
                        <value>"0736"</value>
                    </steps>
                    <steps>
                        <step>3</step>
                        <weight>0.00000000</weight>
                        <equation><</equation>
                        <value>"0877"</value>
                    </steps>
                    <steps>
                        <step>4</step>
                        <weight>0.33333334</weight>
                        <equation>=</equation>
                        <value>"0877"</value>
                    </steps>
                    <steps>
                        <step>5</step>
                        <weight>0.00000000</weight>
                        <equation><</equation>
                        <value>"1389"</value>
                    </steps>
                    <steps>
                        <step>6</step>
                        <weight>0.33333334</weight>
                        <equation>=</equation>
                        <value>"1389"</value>
                    </steps>
                </histogram>
            </colStats>
            <noStatsCol>city,pub_name,state
            </noStatsCol>
        </tables>
     </optStats> 
    

    示例 3

    显示过程的语法:

    
    1> sp_showoptstats a,b,h
    2> go
    
    
    Usage: sp_showoptstats  [[database.[owner].]table], [column], [option]
    (return status = 0)
    

    示例 4

    显示预计算结果集 prs1 的输出:

    
    <h2>sp_showoptstats prs1 </h2>
     <?xml version="1.0" encoding="UTF-8"?>
     <optStats>
        <procVersion>sp_showoptstats/1.1/AnyPlatform/AnyOS/
                     Tues April 3 14:21:21 2012</procVersion>
        <serverVersion>Adaptive Server Enterprise/15.7.1/EBFXXXXX SMP
         ''/P/x86_64/Enterprise Linux/asecarina/ENG/64-bit/DEBUG/Mon
         Jul 9 00:16:37 2012</serverVersion>
        <serverName></serverName>
        <specifiedDatabase>prsdb</specifiedDatabase>
        <specifiedTableOwner></specifiedTableOwner>
        <specifiedTable>prs1</specifiedTable>
        <specifiedCol></specifiedCol>
        <tables>
            <tableOwner>dbo</tableOwner>
            <tableName>prs1</tableName>
            <tableType>precomputed result set</tableType>
            <tableStats>
     . . .
    
            </noStatsCol>
        </tables>
     </optStats> 
    

    用法

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

  • 无法跨数据库执行 sp_showoptstats。

  • 除非进行明确指定,否则不在系统表中包含 sp_showoptstats。

  • 非打印和 univarchar 字符以十六进制格式显示。

  • sp_showoptstats 显示全局级别和分区级别的统计信息。

  • 当输出值大于为 @@textsize 设置的值时,SAP ASE 服务器将返回增大 @@textsize 设置的消息,以便采用较大字体显示输出。

  • 包含句点(.)的参数值需要带有双引号。

  • 可以针对系统表发出 sp_showoptstats 命令。

  • 如果仅指定数据库和所有者,sp_showoptstats 则不会返回统计信息。

    sp_showoptstats XML 输出的 DTD 文件为:

    
    <?xml version="1.0" encoding="UTF-8"?>
    <!ELEMENT optStats (procVersion, serverVersion, serverName?, specifiedDatabase?,
       specifiedTableOwner?, specifiedTable?, specifiedCol?, tables*)>
    <!ELEMENT procVersion (#PCDATA)>
    <!ELEMENT serverVersion (#PCDATA)>
    <!ELEMENT serverName (#PCDATA)>
    <!ELEMENT specifiedDatabase (#PCDATA)>
    <!ELEMENT specifiedTableOwner (#PCDATA)>
    <!ELEMENT specifiedTable (#PCDATA)>
    <!ELEMENT specifiedCol (#PCDATA)>
    
    <!ELEMENT tables (tableOwner, tableName, partitionCnt?,
      (tableStats|clusteredIndStats|indStats|partitionStats|
       partitionClusteredIndStats|partitionIndStats)*,
      (colStats|colPartitionStats)*, noStatsCol?)>
    
    <!ELEMENT tableOwner (#PCDATA) >
    <!ELEMENT tableName (#PCDATA) >  
    
    <!ELEMENT tableStats (tableName, stats)>
    
    <!ELEMENT clusteredIndStats (indName, colList, stats)>
    
    <!ELEMENT indName (#PCDATA) >  
    <!ELEMENT colList (#PCDATA) >  
    
    <!ELEMENT partitionStats (partition*, stats*)>
    
    <!ELEMENT partition (#PCDATA) >  
    
    <!ELEMENT partitionIndStats (indName, partition, colList, stats)>
    
    <!ELEMENT partitionClusteredIndStats (indName, partition, colList, stats)>
    
    <!ELEMENT stats (pgCnt?, leafCnt?, (emptyPgCnt|emptyLeafCnt)?, CRCnt?,
       indCRCnt?, indPgCRCnt?, (dataRowCRCnt|leafRowCRCnt)?, rowCnt?, fwdRowCnt?,
       delRowCnt?, indPgCRCnt?, CRCnt?, oamAllocPgCnt?,
       (firstExtDataPgs|firstExtLeafPgs)?, (dataRowSz|leafRowSz)?, indHeight?,
       dataPages?, joinDegree?, unusedPgCnt?, oamPgCnt?, derivedStats?) > 
    
    <!ELEMENT pgCnt (#PCDATA) >  
    <!ELEMENT leafCnt (#PCDATA) >
    <!ELEMENT CRCnt (#PCDATA) >  
    <!ELEMENT indCRCnt (#PCDATA) >
    <!ELEMENT dataRowCRCnt (#PCDATA) >  
    <!ELEMENT leafRowCRCnt (#PCDATA) >  
    <!ELEMENT emptyPgCnt (#PCDATA) >
    <!ELEMENT emptyLeafCnt (#PCDATA) >
    <!ELEMENT rowCnt (#PCDATA) >  
    <!ELEMENT fwdRowCnt (#PCDATA) >
    <!ELEMENT delRowCnt (#PCDATA) >  
    <!ELEMENT oamAllocPgCnt (#PCDATA) >  
    <!ELEMENT firstExtDataPgs (#PCDATA) >
    <!ELEMENT firstExtLeafPgs (#PCDATA) >
    <!ELEMENT dataRowSz (#PCDATA) >  
    <!ELEMENT leafRowSz (#PCDATA) >  
    <!ELEMENT indHeight (#PCDATA) >  
    <!ELEMENT dataPages (#PCDATA) >  
    <!ELEMENT joinDegree (#PCDATA) >
    <!ELEMENT unusedPgCnt (#PCDATA) >  
    <!ELEMENT oamPgCnt (#PCDATA) >
    <!ELEMENT rowClusterRatio (#PCDATA) >
    
    <!ELEMENT derivedStats (clusterRatio, indClusterRatio?,
       (dataClusterRatio|rowClusterRatio)?, spaceUtil?, IOEfficiency?) >  
    
    <!ELEMENT clusterRatio (#PCDATA) >
    <!ELEMENT indClusterRatio (#PCDATA) >
    <!ELEMENT dataClusterRatio (#PCDATA) >
    <!ELEMENT spaceUtil (#PCDATA) >  
    <!ELEMENT IOEfficiency (#PCDATA) >
    
    <!ELEMENT indStats (indName, colList, stats?) > 
    	
    <!ELEMENT colStats ((colName|colGroup)?, lastUpdate?, cellDensity?,
       totalDensity?, select?, inBetSel?, rangeVal?, totalVal?, avgColWidth?, 
       statsVer? statsSamDen?, statsSamU?, histogram?) > 
    	
    <!ELEMENT colGroup (#PCDATA) >
    <!ELEMENT lastUpdate (#PCDATA) >  
    <!ELEMENT cellDensity (#PCDATA) >
    <!ELEMENT totalDensity (#PCDATA) >  
    <!ELEMENT selectivity (#PCDATA) >
    <!ELEMENT inBetweenSelectivity (#PCDATA) >  
    <!ELEMENT rangeVal (#PCDATA) >
    <!ELEMENT totalVal (#PCDATA) >  
    <!ELEMENT avgColWidth (#PCDATA) >
    <!ELEMENT statsVer (#PCDATA) >
    <!ELEMENT statsSamDen (#PCDATA) >
    <!ELEMENT statsSamU (#PCDATA) >
    
    <!ELEMENT colPartitionStats (ptnName,(colName|colGroup)?, lastUpdate?,
       cellDensity?, totalDensity?, select?, inBetSel?, rangeVal?, totalVal?,
       avgColWidth?, statsVer? statsSamDen?, statsSamU?, histogram?) > 
    
    <!ELEMENT ptnName (#PCDATA) >  
    
    <!ELEMENT histogram (colName, dataType, requestedStepCnt, actualStepCnt,
       samplingPct?, TuningFact?, statsOutRan?, statsHashLow?, statsHashHigh?,
       statsSamSt?, statsStepSt?, statsHtSt?, statsPHashSt?, statsHashSt?,
       statsNoHashSt?, steps*) >  
    
    <!ELEMENT colName (#PCDATA) >
    <!ELEMENT dataType (#PCDATA) >
    <!ELEMENT requestedStepCnt (#PCDATA) >
    <!ELEMENT actualStepCnt (#PCDATA) >  
    <!ELEMENT samplingPct (#PCDATA) >  
    <!ELEMENT TuningFact (#PCDATA) > 
    <!ELEMENT statsOutRan (#PCDATA) >
    <!ELEMENT statsHashLow (#PCDATA) >
    <!ELEMENT statsHashHigh (#PCDATA) >
    <!ELEMENT statsSamSt (#PCDATA) >
    <!ELEMENT statsStepSt (#PCDATA) >
    <!ELEMENT statsHtSt (#PCDATA) >
    <!ELEMENT statsPHashSt (#PCDATA) >
    <!ELEMENT statsHashSt (#PCDATA) >
    <!ELEMENT statsNoHashSt (#PCDATA) >
    
    <!ELEMENT steps (step, weight, equation, value) >
    
    <!ELEMENT step (#PCDATA) >
    <!ELEMENT weight (#PCDATA) >
    <!ELEMENT equation (#PCDATA) >
    <!ELEMENT value (#PCDATA) >  
    
    <!ELEMENT noStatsCol (#PCDATA) >