注册 登录
编程论坛 SQL Server论坛

[求助]关于创建索引

cyc308 发布于 2007-02-08 14:12, 702 次点击
一直把握不准,什么时候,哪些列应该设置为集聚索引或非集聚索引?
我的理解是这样的:
1.对于需经常查询,且该列无重复的值存在时将其设置为集聚索引.
2.对于需进行排序,更新,删除,的列设置为非集聚索引.
3.对于频繁更新的列设置填充因子.
我对于非集聚索引的使用一直不太清楚,如何正确合理使用各种索引能否举个示例?
第二个疑问是:如何设计网站数据库才算合理??
是尽量使用SQL语句,使程序减少对数据库内容进行更新查询等操作好呢?还是尽量设计全数据库将各种结果写入数据库使用时只要简单的查询(简化SQL语句)就可以了呢?

以上两个问题困扰了我很久,因为经验太少,希望版主多多指点!

多谢啦!
7 回复
#2
cyc3082007-02-08 15:39
真的这么难吗?
#3
cyc3082007-02-08 16:37
up
#4
棉花糖ONE2007-02-08 16:39
我也替你up
#5
cyc3082007-02-08 16:48
版主都UP,那俺咋办!!
#6
棉花糖ONE2007-02-08 17:04

这东西我也不熟啊,你也知道优化靠的是经验,我又没经验

#7
Kendy1234562007-02-08 17:21
俺从不创建聚集索引 因为在大批量数据插入时会让人难以忍受的慢;
从来没用过fill factor;
对于经常查询到的key 设置普通index;
对于禁止重复的字段设置Primary key;
至于优化, 俺觉得索引做到这些就差不多了 其它的优化还是靠算法

你的第2个问题 对于数据库设计的冗余, 那种严谨的开发方式当然是冗余字段尽量的少, 但是对代码设计和维护的要求就会高, 而且表之间的关联过多 一样影响效率; 这里就是有个折中的问题, 适当的在数据库保持一些冗余字段 确实可以提高代码效率, 特别是那种需要几个小时甚至几天时间来运行的存储过程. 简单的说就是通过牺牲硬盘空间减少CPU的运算时间

对于一般的网站开发 老实说 只要能保证数据库的数据一致性而且数据足够使用, 就不必太在意数据库设计的有多大多全.
#8
bygg2007-02-08 18:19
http://www.xmlasp.net/n1125c18p2.aspx
看一下这个里面的东东吧..
1