1. 统计信息的重要性
sybase使用基于成本的Query优化器, 它使用表,index,columns的统计信息来估计Query的成本,选择最佳方法。
如果统计信息有误或者不准确,就可能导致SQL执行低效。

有些统计信息在执行update,insert时就会更新,但是有些需要执行update statistics命令时才会执行。
如果遇到性能问题,并且SQL查询计划看上去正确的时候,头一个要问的问题就是统计信息是否准确,是否需要update statistics.

我们可以使用optdiag命令来检查 上传执行update statistics的时间。
另一个常用的命令是 delete statistics, 删除一个index时,如果没有删除这个index相关的统计信息。如果key的存储与删掉的index有关,那么这个不准确的统计信息就导致一定的性能问题。

2. 存储统计信息的表: systabstats 和 sysstatistics 表
systabstats 作为对象存储表或索引的有关信息, 即大小、行数等等。 通过查询处理、数据定义语言和 update statistics 命令可对其进行更新。
sysstatistics 将与这些值有关的信息存储在特定列中。


optdiag 实用程序显示 systabstats 和 sysstatistics 表的统计信息。optdiag 也可用于更新 sysstatistics 的信息。只有系统管理员可以运行 optdiag。

optdiag [binary] [simulate] statistics
{-i input_file |
database[.owner[.[table[.column]]]]
[-o output_file]}
[-U username] [-P password]
[-I interfaces_file]
[-S server]
[-v] [-h] [-s] [-Tflag_value]
[-z language] [-J client_charset]
[-a display_charset]


3. optdiag 查询表\索引的统计信息

OptDiag/15.5/EBF 17218 SMP/P/NT (IX86)/Windows 2003/ase155/2391/32-bit/OPT/Mon Nov 09 14:32:38 2009
Adaptive Server Enterprise/15.5/EBF 17218 SMP/P/NT (IX86)/Windows 2003/ase155/2391/32-bit/OPT/Mon Nov 09 14:18:14 2009

Server name:                            "CNNBHZ1055"

Specified database:                     "re"
Specified table owner:                  not specified
Specified table:                        "inv_ref"
Specified column:                       not specified

Table owner:                            "dbo"
Table name:                             "inv_ref"


#########################################################
##OUTPUT FROM ASE12.5, NOT ASE15.5
#########################################################
Table owner: 							"dbo"
Statistics for table: 					"titles"
Data page count: 						662
Empty data page count: 					10
Data row count: 						4986.0000000000000000
Forwarded row count: 					18.0000000000000000
Deleted row count: 						87.0000000000000000
Data page CR count: 					86.0000000000000000
OAM + allocation page count: 			5
First extent data pages: 				3
Data row size: 							238.8634175691937287

Derived statistics:
Data page cluster ratio: 				0.9896907216494846
###################################################

Statistics for index:                   "inv_ref_Key" (clustered)
Index column list:                      "inv_ref_id", "owner_id"
     Data page count:                   2111
     Empty data page count:             0
     Data row count:                    35360.0000000000000000
     Forwarded row count:               0.0000000000000000
     Deleted row count:                 0.0000000000000000
     Data page CR count:                264.0000000000000000
     OAM + allocation page count:       68
     First extent leaf pages:           0
     Data row size:                     114.7445984162895900
     Index height:                      2
     Parallel join degree:              0.0000000000000000
     Unused page count:                 8
     OAM page count:                    1

  Derived statistics:                   
     Data page cluster ratio:           1.0000000000000000
     Space utilization:                 0.9533793601918899
     Large I/O efficiency:              1.0000000000000000

Statistics for index:                   "inv_ref_idx1" (nonclustered)
Index column list:                      "search_name"
     Leaf count:                        595
     Empty leaf page count:             0
     Data page CR count:                30147.0000000000000000
     Index page CR count:               77.0000000000000000
     Data row CR count:                 32243.0000000000000000
     First extent leaf pages:           0
     Leaf row size:                     33.5776300904977350
     Index height:                      2

  Derived statistics:                   
     Data page cluster ratio:           0.0655430126020201
     Index page cluster ratio:          0.9961538461538462
     Data row cluster ratio:            0.0937471803663268
     Space utilization:                 0.9898167600373483
     Large I/O efficiency:              0.9961685823754789