回答

收藏

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

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

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

本版积分规则