|
|
1
1
可能是插入件: a) 影响表/索引统计信息,因此选择了更好的selects执行计划。 b) 将选择器所需的数据保留在缓冲区中。
在这两个测试期间进行SQL探查器跟踪,并通过跟踪清理器运行输出( http://msdn.microsoft.com/en-us/library/aa175800%28sql.80%29.aspx ). |
|
|
2
1
您的应用程序在数据库调用时被阻止。当您第一次测量时,阻塞发生在INSERT上,因为可能那些恰好是最先阻塞的调用。当您删除插入时,客户端代码向前移动,并在下一次调用时阻塞,选择。这里真的没有什么特别的,您只是删除了一个调用,所以应用程序只是在下一个调用中被阻塞。 您真正需要调查的是数据库阻塞。忘记客户端JProfiler和任何类似的东西。而是关注数据库上发生的事情,并使用数据库trobleshooting方法。您的问题很可能是争用和锁定阻塞。
只要查看服务器上的进程列表,就可以立即看到明显的问题(
|
|
|
3
0
但是,如果没有一些带有模式的SQL示例,则很难判断。 |
|
4
0
您需要考虑插入表上的索引数量以及这些索引的定义和状态。 一种可能是插入导致大量页面拆分。另一个原因是您没有任何索引,导致SELECT查找进行表扫描。 在执行插入之前,请尝试重建索引,并调查索引的填充因子有多大。对于具有高插入的表,我通常将其设置为75%(而不是默认设置为90%),但您需要考虑行大小,因为这将增加所需的总页数。 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
Marc Guillot · 记录值时忽略冲突 1 年前 |
|
|
Fachry Dzaky · 正确使用ROW_NUMBER 1 年前 |
|
|
TriumphTruth · 从满足特定条件的数据集中选择1行 1 年前 |