2013-04-28 40 views
0

假如我想创建基于理论数据库的理论查询处理计划,我该怎么做?另外,我将如何去确定计划的成本?我需要创建一个并确定成本,但我似乎无法理解如何创建一个,因为它不断告诉我要获得一个。任何帮助?如何创建查询处理(或执行)计划?

谢谢。

+1

sql引擎使用真正的表格,真实的数据和真实的统计数据来生成一个真正的计划。我不明白用理论数据库产生理论计划意味着什么。 – bryanmac 2013-04-28 12:18:21

+0

对于我们的课程,我们被告知为以下内容创建查询处理计划,但不包含数据或数据库。 表: EMP(ENO,ENAME,名称,薪酬),PROJ(PNO,PTITLE) WORKSON(ENO,PNO,ROLE) 使一个查询处理计划: SELECT ENAME,ptitle FROM EMP, workson,proj WHERE emp.eno = workson.eno AND workson.pno = proj.pno AND role ='dbadmin 我只是不确定我会如何去解决它而没有数据? – snowhite 2013-04-28 12:20:34

回答

0

您的理论数据库需要与定义的操作相关的成本,例如“获取完整行”,“执行两个整数的比较”,“用n行扫描整个表”。

如果你有这个模型,你可以设计一些方法从关系中获取一些指定的数据。由于没有真实的数据和预定义的算法,因此你不能“获得”这种方式,所以你必须自己创建一个算法。

除非你这样做是对理论计算机科学功课你可能会更好,当你安装任何真正的数据库管理系统,看它的对你已经既定的,从你看到了什么概括表查询计划那里。真的,任何开源数据库都可以帮助你入门。

例如,请查看Postgresql HandbookEXPLAIN命令。它会向您显示您提供的查询的查询计划。

+0

我正在做理论功课。我们唯一被告知的是数据库标签和我们应该使用的select语句。我在这里错过了什么吗?但我怎么会这样做呢?我错过了这个演讲,我很困惑。 – snowhite 2013-04-28 12:25:38

+0

对你的课程没有太多的了解,但对于我来说,在这种情况下,去老师和要求澄清是完全可以接受的。我仍然建议在真正的DBMS上尝试一下,并用一般术语来描述结果。你给出的例子非常简单,几乎所有的DBMS都会创建相同的计划。 – mabi 2013-04-28 12:29:15

+0

非常感谢,我们一直在使用phpMyAdmin,并且与我在网上找到的相比,解释SQL部分似乎让我感到困惑。 – snowhite 2013-04-28 13:03:47