首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测笛卡尔乘积或其他不合理的查询

检测笛卡尔乘积或其他不合理的查询
EN

Stack Overflow用户
提问于 2011-03-15 23:46:33
回答 1查看 718关注 0票数 2

我在一个产品上工作,给用户很大的“灵活性”来创建sql,即他们可以轻松地设置查询,可以将系统带到它的膝盖与包含性where子句。

我希望能够在可能出现这种情况时警告用户,我想知道是否有任何已知的策略可以智能地分析查询,从而实现这一目标?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-15 23:55:52

我能感受到你的痛苦。我以前也有过类似的任务。这是一场持续不断的斗争,用户一方面要求SQL的所有特性和功能,另一方面又抱怨它太复杂,对他们没有帮助,也没有阻止他们做愚蠢的事情。

将分页添加到查询中不会阻止执行不好的查询,但会减少损害。如果只显示SELECT * from reduce返回的前50条记录,并提供翻页到下50条记录的功能,依此类推,就可以避免内存不足问题并减少性能影响。

我不知道它是否适合您的数据/业务领域;但是当用户不提供表连接时,我会强制添加表连接。如果查询包含表A和表B,则A.ID需要等于B.ID;我将其相加。

如果您不介意编写特定于数据库的代码,我知道您可以从数据库( Oracle -http://www.adp-gmbh.ch/ora/explainplan.html中的Explain Plan)获取有关查询的数据。您可以先对他们的查询执行计划,然后使用查询结果来提示或警告用户。但细节将根据您使用的数据库而有所不同。

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

https://stackoverflow.com/questions/5314246

复制
相关文章

相似问题

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