Answers:
如何回答开发人员更改的问题?
这不仅是DEV的一个非常普遍的问题,它还适用于IT和业务中的每个团队。
发生了什么变化?==>可以通过事实和数字来回答。
事实参考例如
如果您要显示数据,则可以得出数字。例如 :
(您必须根据自己的环境和需求,收集数据的频率/收集哪些数据以及保留期长短进行锻炼)或(您可以购买第三方软件,例如sqlsentry或idera的诊断管理器,将为您完成上述工作)。
好吧,您可能会因为以下原因而得到不同的计划:
sp_configure
更改会刷新缓存我在这里详细介绍了很多这些内容:
如果这些程序在不同的环境中运行,那么我要在此处检查一系列内容:
另外,请务必牢记,创建索引或更改查询可能不是查询突然变得更好的直接原因-有时仅仅是因为这些更改确实生成了新计划和/或使已经存在的计划无效。
像往常一样,亚伦· 伯特兰德(Aaron Bertrand)和金(Kin)提供了出色的答案。但是,两个答案都包含一个公共线程。如果您对这两个答案进行分析,您都会发现XYZ不能像昨天那样正常工作的原因并不是您/他们/人X所做的事情。事情发生变化的原因是由于XYZ原因数据库决定做不同的事情。
数据库是一个活生生的实体。数据库将做出决策,并通过假设,统计数据和其他启发式工具的组合改变主意。这与大多数应用程序层编程有显着不同(机器学习是一个明显的例外)。
我将使用一些军事参考资料,因为我现在无法想到更好的东西。一个更一般的隐喻将被赞赏(没有双关语)。
在大多数应用程序中,程序员充当钻取讲师。他们准确地告诉计算机做什么,以什么顺序执行,有时要持续多长时间。对数据库进行编程更像是充当指挥官。您可以从高层次告诉它您想要做什么,并在需要时提供一些指导。该数据库将根据低级军官和士官等当前情报,找出执行计划的最佳方式。
通过在其他程序员的脑海中清楚地表明这一区别,他们希望他们会开始看到您没有像他们在自己的环境中那样拥有专政权。您正在将数据库引导到解决方案,并且偶尔由于好或坏的原因而使数据库偏离轨道。提醒他们,最终与数据库偏离轨道无关紧要,但是我们可以做些什么来恢复它。
*我认识到“为什么”对于将来的预防,学习等非常有价值。但是,OP似乎正面临着来自那些不想学习或帮助解决问题的人们的抵制。