Asp.net mvc 在审计表上添加索引会对系统函数的创建、编辑和删除性能产生负面影响吗

Asp.net mvc 在审计表上添加索引会对系统函数的创建、编辑和删除性能产生负面影响吗,asp.net-mvc,performance,sql-server-2008-r2,Asp.net Mvc,Performance,Sql Server 2008 R2,我有一个名为Audit的表,其中包含以下字段;ID(主键),开始日期,结束日期,类型ID 我添加了两个索引,一个在StartDate上,另一个在typeID列上。因为用户可以基于这两列搜索审计数据。每当用户对我们的任何系统功能执行添加、编辑或删除操作时,都会将新的审核记录添加到审核表中。所以我的问题是,在审计表上添加两个索引是否会对系统内添加、编辑、删除系统数据的性能产生负面影响,或者由于审计表只会添加新记录,因此不会对审计表进行编辑或删除,因此添加两个索引不会对创建速度产生负面影响,编辑和删除

我有一个名为Audit的表,其中包含以下字段;ID(主键),开始日期,结束日期,类型ID

我添加了两个索引,一个在StartDate上,另一个在typeID列上。因为用户可以基于这两列搜索审计数据。每当用户对我们的任何系统功能执行添加、编辑或删除操作时,都会将新的审核记录添加到审核表中。所以我的问题是,在审计表上添加两个索引是否会对系统内添加、编辑、删除系统数据的性能产生负面影响,或者由于审计表只会添加新记录,因此不会对审计表进行编辑或删除,因此添加两个索引不会对创建速度产生负面影响,编辑和删除我们将要记录的数据?
谢谢,索引从来都不是免费的。问题是,维护这两个索引的成本是否值得注意,如果是的话,它们对搜索查询的改进是否证明了它对编写工作负载的影响是合理的


我的猜测是,是的,索引可能是值得的,但只有通过测试整个工作负载周期才能确定。(假设它们是支持您的查询的正确索引,我们也不知道。)

索引从来都不是免费的。问题是,维护这两个索引的成本是否值得注意,如果是的话,它们对搜索查询的改进是否证明了它对编写工作负载的影响是合理的


我的猜测是,是的,索引可能是值得的,但只有通过测试整个工作负载周期才能确定。(并且假设它们是支持您的查询的正确索引,我们也不知道。)

如果您正在使用,您可以自行决定这些索引是否具有较高的成本(较高的写入次数:
用户更新次数
)和较低的效益(较低的读取次数:
%\u查找+%\u扫描+%u查找次数
) 系统视图

您应该分析相关时间段内这些索引的使用情况。什么是“高成本-低效益”取决于你

警告:至少在两种情况下会刷新这些“统计信息”:

  • SQL Server服务重新启动或
  • 当重新生成索引时
其他原因:内存压力、数据库状态更改(例如:只读)

参考资料:


如果您正在使用,您可以自行决定这些索引是否具有较高的成本(写入次数较多:
用户更新次数
)和较低的效益(读取次数较少:
%\u查找+%\u扫描+%\u查找次数
) 系统视图

您应该分析相关时间段内这些索引的使用情况。什么是“高成本-低效益”取决于你

警告:至少在两种情况下会刷新这些“统计信息”:

  • SQL Server服务重新启动或
  • 当重新生成索引时
其他原因:内存压力、数据库状态更改(例如:只读)

参考资料:


@MartinSmith这会教我不要撇奶油。我的错误+我将删除这些噪音comments@MartinSmith那会教我不要轻视。我的错误+1,我将删除这些噪音注释