在编写了复杂的查询或存储过程之后,如何验证结果是否100%准确,并确保所有输入参数都是如此?
我个人的方法是在开发过程中测试,测试和测试 - 检查NULL没有出现在我不期望的地方,行不会被丢弃或加倍,然后完成查询我将通过从结果集中获取随机记录来执行“一定数量的测试”,然后验证这些是否符合预期。
答案 0 :(得分:2)
复杂(=难以阅读)查询通常可以编写为针对#temp表运行的一系列简单(=易于阅读)查询。在开发过程中,我首先将一系列简单步骤放在存储过程中,然后将结果与最终查询进行比较。
答案 1 :(得分:1)
在编写复杂查询时,我首先总是为所需的每组输入写出我的预期结果。绘制您的数据集并根据您的输入编译结果矩阵。当您开始构建复杂查询时,您可以确保它的每一部分都根据您的初始测试矩阵生成正确的结果。
我倾向于保持我的数据集非常“简单”和最小化,以确保满足过滤/结果条件的每个特定情况。尽管SQL本身非常复杂,但在设计和实现过程中量化结果以进行验证会让人感到困惑和复杂,并且可能导致不正确的结果而不知道。只有在我对我的样本数据100%有信心的情况下,我才能通过测试生产数据的暂存方案(或有效的更大数据集)来重新验证我的结果。
答案 2 :(得分:0)
首先单独尝试所有子查询。一次加入一张桌子。检查数据库中的约束,以避免在不可能发生的情况上花费大量时间(约束是你的朋友)。如果查询变得非常困难,请将其中的部分内容分解为可以创建为视图。
思考。
非常低估,思考是。 (这可能是因为对于经理来说,坐在那里的程序员认为看起来和坐在那里什么也不做的程序员一样。)