WEB开发网
开发学院数据库MSSQL Server SQL Server 2005性能排错(5) 阅读

SQL Server 2005性能排错(5)

 2007-05-15 09:28:24 来源:WEB开发网   
核心提示: 在索引操作被分为用户类型和系统类型,用户类型引用SELECT和INSERT/DELETE/UPDATE操作,SQL Server 2005性能排错(5)(3),系统类型操作是类似于DBCC这样的命令或DDL命令或是update statistics,每种类别的语句列被区分为:◆依靠索引的S

在索引操作被分为用户类型和系统类型。用户类型引用SELECT和INSERT/DELETE/UPDATE操作。系统类型操作是类似于DBCC这样的命令或DDL命令或是update statistics。每种类别的语句列被区分为:

◆依靠索引的SEEK操作 (user_seeks or system_seeks)

◆依靠索引的LOOKUP操作(user_lookups or system_lookups)

◆依靠索引的SCAN操作(user_scans or system_scans)

◆依靠索引的UPDATE操作(user_updates or system_updates)

每种访问索引都会记路最后一次访问的时间戳。一个索引本身通过3列识别,database_id,object_id和index_id。然而,index_id=0代表是一个堆表,index_id=1代表时集束索引,反之index_id>1但表是非集束索引。

一个整天运行的数据库应用程序,从sys.dm_db_index_usage_stats中得到的索引访问信息列表将增长。

下列是在SQL Server 2005使规则和任务的定义:

◆SEEK: 识别用于访问数据的B树结构数量。不论B树结构只是访问每级只有少量页面来获取一个数据行,还是是表中使用半索引页面读取如几个G数据或百万行的数据。所以我们希望在这个类别有更多的累计。

◆SCAN: 识别不使用B树索引获取数据的数据表数量。没有任何索引定义的表属于这种情况。有索引定义但是在执行语句查询时并没有使用这些说印的表也属于这种情况。

◆LOOKUP: 识别在一个集束索引通过’seeking’在一个非集束索引上查询数据,2个索引都定义在同一张表上。这种场景描述在SQL Server 2000中的书签查询。它表现了这样一个场景,非集束索引被用于访问表,并且非集束索引没有覆盖查询的列和索引列没有在WHERE子句定义,SQL Server将使用非集束索引列的user_seeks值加上使用集束索引列的user_lookups值。这个值能变得很高如果多个非集束索引在这个表上定义。如果依靠集束索引的user_seeks值高,user_lookups的数量也会很高,加上一部分user_seeks也是很高,应该通过将非集束索引大量的高于集束索引。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:SQL Server 性能

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接