【发布时间】:2016-11-11 12:06:35
【问题描述】:
我有一个数据库,其中的表每天都在增长。我无法预测哪些表会增长,哪些不会增长,因为我不是将数据放入其中的人。
有没有办法找到在特定时间点需要索引的表?在 SQL Server 中,如果数据库需要调整某些表,有没有办法通知我?
这是我们在不同客户位置部署的产品,我们不能每次都访问他们的服务器来检查他们是否存在性能问题。我正在考虑的是,如果某些表存在性能问题,可以通知我,因此当新补丁发送到客户端时,我们可以添加这些索引或调整查询。
在参考Insertion of data after creating index on empty table or creating unique index after inserting data on oracle? 之后,我不愿意在安装数据库时创建索引,或者当表的行数很少或为空时。
【问题讨论】:
-
在空表上创建索引——谁告诉你这全是鲤鱼。
-
这些表有多大?主键约束将自动在键列上创建索引。我不会担心索引一个空表。我看不出这会对任何事情产生负面影响。查询优化器获取有关您如何使用某些表的统计信息并自动执行很多操作。除了正确索引之外,您能否更具体地说明您希望完成的任务?
-
数百万行大约有 30 列。霍根,我想要答案,而不是其他一些谈话,对不起。
-
我经常使用并且非常有用的一个工具,
sp_BlitzIndex。 -
您对自己拥有的数据一无所知?如果没有商业意识,您如何充分索引您的表?至于可伸缩性,肯定有办法至少跟踪表的大小、使用或其他方式。听起来像问答和报告写作的结合会对你有所帮助。因为因为它们“必须”有一个而在表上抛出索引是愚蠢的。
标签: sql sql-server performance sql-server-2008