关于索引创建的问题,希望大家给个参考

lycorisraya 2012-04-23 10:28:05
RT,在我的表中,查询比较频繁的列有姓名、基本信息编号、健康档案编号3个字段,其中健康档案编号是省、市、县、乡和村行

政代码自动生成17位数并且唯一,基本信息编号取的是健康档案编号的最后8位,两个编号都是很少更新,另外在连接其他表时是

根据健康档案编号来作为连接字段的。现在我不确定聚集索引是默认建立在主键上还是建立在健康档案编号列上,或是在健康档

案编号上建立非聚集索引。我参考了一些说法,说是聚集索引很宝贵,默认建立在主键上的话有点浪费,但建立在健康档案编号

字段上有违反了大数目的不同值情况下不应建立聚集索引规则。于是,又想在健康档案编号上建立非聚集索引,但是这样的话聚

集索引应该建立到那个字段上呢?

希望大家多多发表自己的观点,给点参考,在这里先谢谢了!
...全文
90 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wyx100 2012-04-25
  • 打赏
  • 举报
回复
回复于:2012-04-25 15:17:04你可以将健康档案编号前9位也就是只记录省、市、县、乡和村行
政代码部分分出来为一个新字段,这个建立聚集索引。其他的都是普通索引。

健康档案编号,基本信息编号看能否使用numeric类型来代替varchar类型
如果可以也会有几倍的性能提高。
jinjazz 2012-04-25
  • 打赏
  • 举报
回复
聚集索引应该建在不会被更新的字段上,比如主键
fengerfei2000 2012-04-25
  • 打赏
  • 举报
回复
你可以将健康档案编号前9位也就是只记录省、市、县、乡和村行
政代码部分分出来为一个新字段,这个建立聚集索引。其他的都是普通索引。

健康档案编号,基本信息编号看能否使用numeric类型来代替varchar类型
如果可以也会有几倍的性能提高。
ABCDEF 2012-04-25
  • 打赏
  • 举报
回复
http://database.ctocio.com.cn/tips/272/7588272.shtml 看看
lycorisraya 2012-04-23
  • 打赏
  • 举报
回复
补充说明:建立索引的时候要考虑到查询分页的效率,也就是说每次分页的时候返回有限的记录,比如20条。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧