我在这个问题上苦苦挣扎。
给出两个关系:
CIGaussianBlur
和A = (aid, a, t, p, z)
。具有以下尺寸,B(bid, x, aid, y)
和A has 10000 pages 25 entries/page
。
数据库具有以下索引:
B has 1000 pages, 40 entries/page
unclustestered B+ index on B.y
。
请考虑一下DBMS有以下两种可能的加入算法:
hash indexes on all table keys
join with nested loop
对于以下查询,如何找到最小化块读取的计划:
join with index
我的方法是利用所有表键上都有哈希索引这一事实,并使用
在这种情况下,select A.t, B.y
from A, B where B.aid = A.aid and
B.y > '0'
的页面显示为:
已读取join with index
页。
可以安全地假设这是最佳方法吗?
因为10000 pages + 1000 * 40 * 1,2 = 58000
似乎自然是实现这一目标的更高要求。我希望一些数据库专家会提供一些想法。
谢谢。