时间:2022-11-16 20:30:01 | 来源:信息时代
时间:2022-11-16 20:30:01 来源:信息时代
数据库查询优化 : DBMS为一个查询请求选择较优的查询处理策略的过程,是关系数据库的重要功能。关系数据库的查询优化包括代数优化和物理优化两部分。代数优化的主要任务是根据关系代数的等价变换规则及一套启发式规则,通过对查询做等价变换,达到优化查询执行的目的。物理优化是根据数据字典中记载的各种统计信息和一套启发式规则,选择高效合理的操作算法或存取路径,求得优化的查询计划,达到查询优化的目标。例如,有两个关系模式: 图书表BOOK和借阅表BR。图书表记录了每本图书的编号、书名、作者、出版社等信息。借阅表记录了图书借阅的历史信息,包括图书编号、借阅人代码、姓名、借阅时间等信息。如果想查询“DB”一书所有借阅人的姓名,用SQL语言可以表达为:
SELECT BR.name
BFROM BR,BOOK
WHERE BR.bookno=BOOK.bookno
AND BOOK.bname='DB';
系统可以用多种等价的关系代数表达式来完成这一查询,比如:
Q1=πname(σBR.bookno=BOOK.bookno^BOOK.bname='DB'(BR×BOOK))
Q2=πname(σBOOK.bname='DB'(BR⋈BOOK))
Q3=πname(BR⋈(σBOOK.bname='DB'(BOOK)))
虽然Q1、Q2、Q3是等价查询,查询结果一样,但其查询效率相差悬殊。把代数表达式Q2变换为Q3,即在有选择和连接操作时,先做选择操作,这样参加连接的元组数就可以大大减少,这是代数优化。在Q3中,BOOK表的选择操作算法有全表扫描和索引扫描两种方法,经过初步估算,索引扫描方法较优。同样对于BR和BOOK表的连接,利用BOOK表上的索引,采用index join代价也较小,这就是物理优化。