约束/索引如何减慢插入速度

vin*_*vin 5 sql-server

我们可以使用什么工具来显示索引正在减慢 sql server 中的插入速度?我知道在开发中我们可以放弃约束并比较时间,但是在生产系统中我们如何证明这种情况正在发生?

Dan*_*man 3

索引和约束会减慢插入速度,因为检查和维护这些的成本不是免费的。开销只能通过单独的性能测试来确定。但是,除非您计划通过单独查看插入开销来单方面删除索引和约束,否则开销信息将没有价值。

我建议您保留所有约束,除非性能比数据完整性更重要(我希望不是)。在生产中,通过检查 DMV 来识别未使用的索引或对其他 DML 几乎没有性能优势的索引sys.dm_db_index_usage_stats。考虑到索引调整是一种成本效益分析,请记住数据插入一次但通常会读取多次。