上一大桌改变给定列的XML架构集合时,我看到我们的企业应用了巨大的性能损失。简单地说,我们正在做这样的事情:XML架构集合变化 - 巨大的性能击中
ALTER TABLE HugeTable ALTER COLUMN CustomFields XML
(注:CustomFields以前绑定到XML(CustomFieldsSchemaCollection,但当然我们需要修改XML架构,所以我们需要这个语句,使该模式可以修改)
然后,修改后CustomFieldSchemaCollection,我们这样做:
ALTER TABLE HugeTable ALTER COLUMN CustomFields XML(CustomFieldSchemaCollection)
第一条语句需要8分钟,第二次发言需要10分钟
我们发现,我们可以通过使用稍微优化的第一条语句(50%的性能提升)以下:
ALTER TABLE HugeTable ALTER COLUMN CustomFields nvarchar(max)
的效果是,第一个语句需要4分钟,第二次发言需要10(所以,14分钟,从18下降)。
底线的问题是... 有没有办法做到这一点“XML模式重新绑定”(或任何一个调用它),以避免SQL Server的完全不必要的和多余的每一个值的检查方式在列中? (注意:是的,我们可以安全地假设该表中现有的XML数据将符合新的xml架构集合。)
感谢任何能够协助的人!
,如果这是一个时间的变化,需要15-20分钟的大事情是什么? – 2009-09-17 13:18:38
KM:很好的问题!这是升级过程的一部分。不幸的是,即使半大型数据库它采取了很长时间 - 时间 - 并导致升级失败(超时错误)。作为一家公司,我们正试图摆脱“只是增加超时阈值”的解决方案,因为这太过于刁钻我们。 – Garrett 2009-09-17 18:17:29