问题描述
克里斯和康纳,
我们经常会被问及为什么查询在一个环境中的执行情况与在另一个环境中不同,答案通常会根据各种因素而变化。
有时我们的发现被考虑,而另一些时候我们被要求证明它。
例如,今天我们遇到了一些问题,开发团队声称在生产环境中逐行插入数据是一个性能问题,同一作业在UAT环境中对于相同的插入不会遇到任何问题, UAT环境具有相同的软件、db参数,硬件和存储。不过,你猜的负荷完全不同。
有没有什么字典视图或报告可以帮助我教育用户苹果!=橙色。
谢谢
公元前
我们经常会被问及为什么查询在一个环境中的执行情况与在另一个环境中不同,答案通常会根据各种因素而变化。
有时我们的发现被考虑,而另一些时候我们被要求证明它。
例如,今天我们遇到了一些问题,开发团队声称在生产环境中逐行插入数据是一个性能问题,同一作业在UAT环境中对于相同的插入不会遇到任何问题, UAT环境具有相同的软件、db参数,硬件和存储。不过,你猜的负荷完全不同。
有没有什么字典视图或报告可以帮助我教育用户苹果!=橙色。
谢谢
公元前
专家解答
原理很简单:
SQL运行时间=
在CPU上花费的时间+
花在非CPU上的时间+
不允许做任何事的时间
所有这些你都可以比较容易地追踪/测量。
所以如果有人说以下是在两台计算机上运行不同的SQL'x',然后
a)检查基本原则#1 ,例如,执行计划是否在这里发挥作用?不同的计划显然可能意味着不同的执行时间。您的大小写为行“插入”,因此不应成为一个因素
b)检查基础2 ,例如,在您的插入案例中-我们是否有完全相同的应用程序环境(例如,是否有触发器等)。让我们假设在您的案例中,设置是相同的
c)然后跟踪操作。您可以得到CPU开销、等待(包括I/O )等。这样你就能发现区别在哪里。
希望这个能帮上忙。
SQL运行时间=
在CPU上花费的时间+
花在非CPU上的时间+
不允许做任何事的时间
所有这些你都可以比较容易地追踪/测量。
所以如果有人说以下是在两台计算机上运行不同的SQL'x',然后
a)检查基本原则#1 ,例如,执行计划是否在这里发挥作用?不同的计划显然可能意味着不同的执行时间。您的大小写为行“插入”,因此不应成为一个因素
b)检查基础2 ,例如,在您的插入案例中-我们是否有完全相同的应用程序环境(例如,是否有触发器等)。让我们假设在您的案例中,设置是相同的
c)然后跟踪操作。您可以得到CPU开销、等待(包括I/O )等。这样你就能发现区别在哪里。
希望这个能帮上忙。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




