【发布时间】:2015-09-29 23:45:31
【问题描述】:
当我对数据使用索引、集群或散列集群结构时,我正在尝试找到表现出不错的性能提升的 equi-join 查询。我最初需要首先对非结构化数据运行查询,并且执行时间应该很长,以便我可以看到 3 种结构中的任何一种都可以提高性能。我遇到的问题是,如果我使用使用索引列的查询,则搜索太窄,所以返回的行太少,然后我的基线查询的执行时间太快,所以我无法测量时间。
似乎对我的基线查询执行时间有任何重大影响的唯一查询是那些导致对具有最多行的表进行全表扫描的查询,但这使得使用索引结构无用,因为它不会使用索引。集群或散列集群是否受益于全表扫描 - 通常我不知道哪些查询从集群/散列集群中受益。
我的表有 500,000 多行和我尝试过的一些查询:
SELECT c.Cust_name, s.total_price
FROM Sales s, Customer c
WHERE s.Cust_id = c.Cust_id
ORDER BY c.Cust_name;
SELECT count(*)
FROM Sales s, Customer c
WHERE s.Cust_id < 500
AND s.Cust_id = c.Cust_id;
SELECT c.Cust_name, s.total_price
FROM Sales s, Customer c
WHERE s.Cust_id = c.Cust_id
AND c.Cust_name LIKE '%A';
【问题讨论】:
-
表上有哪些索引?你计算过表格统计数据了吗?
标签: sql oracle query-optimization database-performance