首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何测试SQL语句并保证其质量?

如何测试SQL语句并保证其质量?
EN

Stack Overflow用户
提问于 2010-02-03 22:15:02
回答 6查看 2.1K关注 0票数 3

这些天我正在写一些商业情报报告。数据是通过普通SQL SELECT语句获取的。语句变得越来越复杂。

我要报告的数据部分是业务关键型的。所以,如果我能做点什么来证明SQL语句的正确性和质量,我会感觉更好。

我知道对于应用程序代码,有一些方法可以做到这一点。但是,我可以做些什么来在SQL级别上实现这些目标呢?

提前谢谢。

EN

回答 6

Stack Overflow用户

发布于 2010-02-03 22:18:18

我不知道您可以做任何SQL级别的QA证明,因为您正在寻找查询的意图(语义),而不是语法上的正确性。

我会编写一个小的测试工具,它接受SQL语句并在已知的测试数据库上运行它,然后将结果与一组预期的参考数据(电子表格、简单的CSV文件等)进行比较。

为了获得额外的好处,请将其封装在单元测试中,并使其成为连续构建过程的一部分。

如果您使用电子表格或CSV作为参考数据,则可以与业务用户一起演练,以便在编写SQL之前捕获他们的需求(即测试驱动开发)。

票数 7
EN

Stack Overflow用户

发布于 2010-02-03 22:19:55

测试语句的正确性需要详细描述生成报告需求的逻辑,然后独立于SQL创建适当的测试数据集,根据需求构建,以确保正确的数据,并且只为每个测试用例选择正确的数据。

然而,在越来越复杂的条件下构建这些案例将变得非常困难-报告因不断变化的需求而臭名昭著。

票数 1
EN

Stack Overflow用户

发布于 2010-02-03 22:29:19

您还可以考虑捕获指标,例如运行每条语句的持续时间。您可以在应用程序级别执行此操作,也可以在每个SQL语句的开头和结尾写入审核表。如果您的语句封装在存储过程中,这将变得更容易,并且还可以用来监视谁在一天中的什么时间以及从哪里调用该过程。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2192496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档