一般来说,如何在数据库查询中编制索引?你怎么知道要索引什么?

时间:2014-03-05 14:46:51

标签: sql database indexing

任何人都可以指导我一个易于理解的解释(这不需要我阅读300页的书)关于如何索引事物以及如何识别索引内容,规范事物的意义等等?或者提供非常简单的例子?

2 个答案:

答案 0 :(得分:1)

严格来说,这是 SQL Server

  1. 对于每个“严重”数据表,必须一个精心选择的聚类索引。 良好聚类索引是狭窄的,唯一的,静态的(永不改变),理想情况下不断增加 - INT IDENTITY尽可能接近完美

  2. 对于外键的任何列,请创建非聚集索引。这有助于JOIN和其他操作,是一种普遍接受的最佳实践

  3. 不要过度指数! - 过多的指数可能比没有指数差!

  4. 让您的系统运行一段时间,观察其运行情况,找出潜在的性能瓶颈

  5. 如果您发现了一些性能问题,请生成代表性工作负载(不仅仅是单个查询;使用服务器端跟踪)并尝试使用例如数据调优顾问(但不要盲目采纳 DTA所说的一切!)

  6. 一次实施一个索引 - 再次观察您的系统 - 性能(真实的或感知的)是否有所改善?如果是这样:保留索引 - 如果不是:再将其删除

  7. 哪些指数完全可以使用 - 这是一种基于大量技术诀窍,实验,经验的黑色艺术 - 你真的无法在这里提供清晰,黑白的想法。尝试一下 - 观察它的好处(或负面影响) - 从中​​学习。重复直到退休: - )

    真的没有10页的清单,一旦你知道,你已经完成了。要么你自己学习这些东西,多年来 - 或者你雇用具有这种专业知识的人 - 你的选择。在5个简单的课程中掌握索引的所有内容并没有“简单的方法”.....

答案 1 :(得分:0)

如果你从头开始,Paul Litwin的关系数据库设计基础是值得一读的。 (22页大部分......)http://sbuweb.tcu.edu/bjones/20263/Access/AC101_FundamentalsDB_Design.pdf

正如他所说,数据库设计更多的是艺术而不是科学,所以只有通过改进自己的系统才能让你获得实例。