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

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

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

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

解决方法

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

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

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

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...