好多数据库表尤其是记录代码信息的表都有index_这一列,然后取值为-1,不知道这是干什么用的?

解决方案 »

  1.   

     某个表或视图的非聚集索引在索引在sysindexes内也有一行,其indid值从2到250,root列指向非聚集索引B树的顶端。SQL Server在查找数据时,服务器先使用和使用聚集索引相同的查找方法找到该索引的行定位器——Book
      

  2.   

     某个表和视图的聚集索引在sysindexes内有一行,其indid=1。root列指向聚集索引B树的顶端。服务器使用B树查找数据页。SQL Server沿着聚集索引浏览以找到聚集索引键对应的行。为找到键的范围,SQL Server浏览索引以找到这个范围的起始值,然后用向前或向后页扫描数据页。为找到数据页链的页首,SQL Server从索引的根节点开始沿着最左边的指针进行扫描。所以,如果用聚集索引查找数据,如果只返回一行,那么其IO数,就是B树的顶端到键值所在数据行的深度,简记为D。如果返回多行,则需要再加上符合条件的页数,简记为P。总的IO数为D+P。