我在 azure SQL 数据库中有一个非常大的表,该表已经拥有超过 3000 万行,并且每天都会对该表进行大量插入,约 50-60k
我们的网络应用程序中有多个页面需要来自这个大表的数据...每个页面都有不同的方式根据需要哪些列以及 where 子句中提到的列来查询此表。
由于数据库位于 Azure 上,因此 Azure 会自动应用一些索引,查看正在执行的查询,这些索引现在由于数据库大小非常大而导致性能问题。在 SQL 中使用 dmv,我发现数据大小约为 15GB,但索引几乎为 65GB
在这种情况下如何创建有效的索引?
最佳答案
Brentozar publiched their free script它做了很好的分析,例如:
- 存在哪些索引
- 索引的使用频率
- 查询引擎查找不存在索引的频率。
可以根据上述脚本得出应在 Azure SQL 数据库中删除哪些索引的结论。
As MSDN says it is possible to drop indexes at Azure SQL Database.
关于sql-server - 大型 SQL 数据库上的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53742740/