回答

收藏

如何确定何时在表列上使用索引?

技术问答 技术问答 738 人阅读 | 0 人回复 | 2023-09-14

索引什么时候应该用在表上?
9 Y. U3 b: H' R8 s[ol]几行索引有意义吗?2 R. @9 F) R* c! W. r5 p2 u
如果我的表有恒定的行,只需编辑列(不是’where’在句子中),即使表只有15行左右,索引还是有意义的?编辑:在这种情况下,非索引选择/读取能否比索引读取更有效?[/ol]编辑:现在我在用它firebird 2.但大多数时候时间都在用,SQL Server 2005/2008。
. l, D) G5 C5 {: r/ L6 T5 h/ j                                                               
& e( \3 j$ d' O; ^0 V9 e    解决方案:                                                                . Y; @2 q0 o5 F4 U( \; K  M
                                                                通常,我的索引策略是这样的(我现在只用)SQL Server-根据需要适应自己的数据库系统):
  V* R$ y4 G1 k. b选择一个 好的    群集密钥-不是GUID,不是VARCHAR(250)-或类似的东西- 好的    群密钥是 狭窄、唯一、稳定、不断增长    -像a这样的东西INT IDENTITY完美。使它成为集群的主键->为您提供表上的第一个索引; K: _, w# w( e
对于任何用作另一个表的外键列,请添加索引。它可以是单列索引或复合索引,无论哪种情况最适合您。重要的是,将外键列作为索引 第一    列(如果使用复合索引)-否则,JOIN‘s或者检查参考完整性的好处对您的系统不可用
, Y2 m* E7 P+ {% Z5 ?
仅此而已。
& J2 I4 @- P7 |' L& I# ^6 L1 x/ n  E" a然后:操作系统-观察并测量-建立基线。应用程序够快吗?如果是的话->完成后,请回家享受业余时间。
8 t3 ]2 n, M2 e3 `, K如果没有,请执行以下操作:开始收集相关应用程序运行速度不够快的数据和说明。看看,比如SQL Server中的DMV等等,他们告诉你性能最差的查询,或者2 x, H2 T$ C' \! G" b9 e4 I
缺少索引DMV    。分析这些。看看有什么可以改进。一次    再次添加 一个索引    :观察、测量和比较基准。
" C$ }2 ?4 w$ j: [( O若有改进->保留这个索引,那么这个测量标准就是你的新基准。冲洗并重复,直到你(和你的用户)对应用程序的性能感到满意( 然后    回家享受您的假期)。
& J' a! ?6 K. j; Q& D- d* h, d& I与没有索引相比,SQL Server过度索引可能会 更糟    。不要用太多的索引开始。!仅建立 良好的
7 l: k; n7 f2 [- m' U聚集PK与外键非聚集索引,然后观察、测量、优化和重复循环。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则