什么是SQL Server的理想索引策略?

我和朋友正在开发一个使用sql Server的新项目.在我之前完成项目的sql中,我总是将索引放在JOIN或WHERE中使用的任何字段上.

我的朋友只有在他们有性能需求时才添加它们.这个想法是维护索引需要付出代价,并且您希望确保支付这笔费用.可以公平地说,有些查询不会经常使用,而且有些表会比其他表更加积极地添加.

因此,我正在寻找有关数据库索引的“最佳实践”的建议.什么对你有用?

解决方法

我个人倾向于主动方法:根据您的查询,在需要的地方添加索引.正如您所说,在JOIN或WHERE中涉及的字段.每个索引都会加速读取查询,但会降低写入速度(因为每次写入都需要更新索引).因此,对于写密集型表,可能需要其他解决方案(数据仓库,复制……).

另一种方法,只添加性能需要它们的索引,只有在你进行主动监控时才有效,但即使这样也有一些缺点:

>您将不得不向遇到性能问题的表添加索引.在添加索引时,您的表被锁定 – 这是一个使用频繁的表!>通常在测试时,测试数据比应用程序中的实际数据小几个数量级.瓶颈可能会被忽视.

相关文章

(一)日志传送架构 (1.1)相关服务器 主服务器 :用于生产的服务器,上面运行这生产SQL Server数据库...
(一)事故背景 最近在SQL Server 2012生产数据库上配置完事物复制(发布订阅)后,生产数据库业务出现了...
(一)测试目的 目前公司使用的SQL SERVER 2012高可用环境为主备模式,其中主库可执行读写操作,备库既...
(一)背景个人在使用sql server时,用到了sql server的发布订阅来做主从同步,类似MySQL的异步复制。在...
UNION和OR谓词 找出 product 和 product2 中售价高于 500 的商品的基本信息. select * from product wh...
datawhale组队学习task03