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