我已经完成的应用程序已经上线,并且就特定表格中的响应时间而言,我们正面临一些非常具体的问题。由于使用GUID(uniqueidentifier)而导致的数据库修改
简而言之,某些具有5k行的表的响应时间非常短。而这些表格的规模会越来越大。
这些表中的一些(例如Order Header表)具有与P.K.相同的唯一标识符。我们认为这可能是响应时间较短的原因。
在研究的情况下,我们已经决定下列选项
- 转换表中OrderHeader主键索引到一个非聚集之一。
- 使用NEWSEQUENTIALID()作为PK,而不是NEWID(默认值)
- 转换的PK为一个BIGINT
我们认为,选择2号是理想的,因为选择3号需要大票变化。
但要实现我们需要将插入存储过程中的一些处理移动到触发器。这是因为我们需要从OrderHeader表中捕获PK,并且我们无法使用
在插入存储过程中选择@OrderID = newsequentialid()。
而如果我们继续把处理转移到触发器,我们可以使用
从插入
选择的OrderID现在的问题吗?
将PK从newid()转换为newsequentialid()会导致性能增益吗?
会将PK索引转换为非聚簇索引并保留uniqueidentifier作为PK的数据类型和newid()来生成PK解决我们的问题?
如果你遇到类似的那种情况,请不要让提前人们提供有用的建议
感谢吨
罗米
5k行是TINY !! – 2011-05-25 09:38:12
你为什么认为它的问题是问题?听起来很奇怪。你知道女巫查询数据库是慢吗?你有没有分析过这个问题?你检查执行计划吗?你可以发布“问题”查询,以便我们可以分析PK是否真的是问题? – Ivo 2011-05-25 09:41:26