网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > windows > 系统技巧 > 系统技巧 > 查找没有索引的表  

查找没有索引的表

2003-05-30  作者:BitsCN整理  来源:中国网管联盟  点评 投稿 收藏


  索引是提高SQL Server性能的关键。也许你已经接手了一个新的SQL Server,它是其他部门的或者你的公司渴望提高当前SQL Server性能的。无论怎么样,我们要完成的首要任务之一是看那些没有包含索引的表是否存在。
  
  
  
  你打开两个系统表:sysindexes and sysobjects,查找这些信息。这系统表sysobjects是用来查找表对象和获得表对象名的。sysobjects 表Xtype列有一个’U’区别用户表。sysobjects 表的Id列是用来作为OBJECTPROPERTY()系统函数的参数,去查找没有索引的表的。第二个参数有TableHasIndex的值。是个系统函数如果返回0,这表示表没有索引存在。其他系统表,sysindexes 是用来取得表的行数的。Sysindexes系统表有一个indid的列,当indid的值为0时,表示它他是表而不是索引。Sysindexes表用来获得表的行的每一列的值。表的行越多,表的访问频率越高决定了为表加上索引提高性能的优先权。
  
  下面的查询是用来查找没有索引的表的:
  
  SELECT (SELECT si.rows
   FROM sysindexes si
   WHERE si.id = so.id and indid = 0) rows
  , so.name
  FROM sysobjects so
  WHERE so.xtype = 'U'
   AND OBJECTPROPERTY(so.id , 'TableHasIndex' ) = 0 网管u家u.bitscn@com
  ORDER BY 1 DESC
  
  通过使用同样的查询,你可以用TableHasClusteredIndex替代TableHasIndex属性来查找那些没有索引簇的表。

 上一篇:避免资源死锁:识别已打开的事务   下一篇:用DATABASEPROPERTYEX()检查恢复过程的状态
查找没有索引的表 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: