我有一个大表,它既有大量读取,又有大量写入(实际只是附加)。
我想了解索引如何影响写入速度,理想情况是更新它们的持续时间(与插入时间相比),但对于仅用于索引维护的资源有一些感觉。
这是某个存在于sqlserver / profiler中的某个地方吗?
感谢。
答案 0 :(得分:4)
查看sys.dm_db_index_operational_stats
下的各个...wait...
列。这将考虑锁和锁存器的等待,但它不会考虑日志写入时间。对于日志写入,您可以根据行大小进行简单的数学运算(即,在100字节宽的表上新增10个字节宽的索引将添加10%的日志写入),因为日志写入时间仅由数量驱动写的字节数。数据库对象下的Log Flush...
计数器将测量当前的整个数据库范围的日志等待时间。
最终,最佳测量是良好控制的测试负载的基线比较。
答案 1 :(得分:0)
我认为没有办法找出更新的持续时间,但您可以通过查询sys.dm_db_index_usage_stats来检查索引的最后一次用户更新。这将为您提供有关查询和更新索引的频率以及此信息的日期时间戳的一些关键信息。