SET EXPLAIN 语句支持完整连接级别设置。
DATABASE stores_demo;
SET EXPLAIN ON;
UPDATE orders SET ship_charge = ship_charge + 2.00
WHERE customer_num IN
(SELECT orders.customer_num FROM orders
WHERE orders.ship_weight < 50);
CLOSE DATABASE;
QUERY:
------
update orders set ship_charge = ship_charge + 2.00
where customer_num in
(select orders.customer_num from orders where
orders.ship_weight < 50)
Estimated Cost: 4
Estimated # of Rows Returned: 8
1) gbasedbt.orders: INDEX PATH
(1) Index Keys: customer_num (Serial, fragments: ALL)
Lower Index Filter: gbasedbt.orders.customer_num = ANY
Subquery:
---------
Estimated Cost: 2
Estimated # of Rows Returned: 8
(Temp Table For Subquery)
1) gbasedbt.orders: SEQUENTIAL SCAN
Filters: gbasedbt.orders.ship_weight < 50.00
下一示例基于下列 SQL 语句,其中包括 DELETE 操作:
DATABASE stores_demo;
SET EXPLAIN ON;
DELETE FROM catalog WHERE stock_num IN
(SELECT stock.stock_num FROM stock, catalog WHERE
stock.stock_num = catalog.stock_num
AND stock.unit_price < 50);
CLOSE DATABASE;
以下是结果输出:
QUERY:
------
DELETE FROM catalog WHERE stock_num IN
(SELECTstock.stock_num from stock, catalog
WHERE stock.stock_num = catalog.stock_num
AND stock.unit_price < 50);
Estimated Cost: 19
Estimated # of Rows Returned: 37
1) ajay.catalog: INDEX PATH
(1) Index Keys: stock_num manu_code (Serial, fragments: ALL)
Lower Index Filter: ajay.catalog.stock_num = ANY
Subquery:
---------
Estimated Cost: 12
Estimated # of Rows Returned: 44
(Temp Table For Subquery)
1) ajay.stock: SEQUENTIAL SCAN
Filters: ajay.stock.unit_price < $50.00
2) ajay.catalog: INDEX PATH
(1) Index Keys: stock_num manu_code
(Key-Only) (Serial, fragments: ALL)
Lower Index Filter:
ajay.stock.stock_num = ajay.catalog.stock_num
NESTED LOOP JOIN