關於分割槽表中的全partition掃描問題
Oracle 10.2.0.4 , 3 nodes RAC , Linux AS 5.3 64bit .
具體執行計劃見圖片, wip_d_sn_detail 是一個分割槽表 ,半年一個分割槽,其中 20100101 ~ 20100701 是第三個分割槽。
查詢發現partition 3 的總資料量是 4100多萬, 報表需要查詢的時間段(一天) 資料量只有 52 萬 。
SELECT ROWNUM AS ID, plant_code, serial_number, work_order, batch_no,
model_name, product_line,
TO_CHAR (in_station_time, 'YYYY/MM/DD HH24:MI:SS') AS in_station_time,
op_no
FROM wip_d_sn_detail
WHERE ck_flag = 'N'
AND work_group ='KIT1'
AND plant_code IN ('MI02', 'MI03', 'MI04')
AND product_line ='J302'
AND in_station_time >= TO_DATE ('20100322 14:12:00', 'YYYYMMDD HH24:MI:SS')
AND in_station_time < TO_DATE ('20100323 14:12:00', 'YYYYMMDD HH24:MI:SS')
SELECT /*INDEX(wip_d_sn_detail,IDX_WIP_D_SN_DETAIL_TIME)*/
ROWNUM AS ID, plant_code, serial_number, work_order, batch_no,
model_name, product_line,
TO_CHAR (in_station_time, 'YYYY/MM/DD HH24:MI:SS') AS in_station_time,
op_no
FROM wip_d_sn_detail
WHERE ck_flag = 'N'
AND work_group ='KIT1'
AND plant_code IN ('MI02', 'MI03', 'MI04')
AND product_line ='J302'
AND in_station_time >= TO_DATE ('20100322 14:12:00', 'YYYYMMDD HH24:MI:SS')
AND in_station_time < TO_DATE ('20100323 14:12:00', 'YYYYMMDD HH24:MI:SS')
查詢partition 3 的總資料量是 4133萬 (說明: 這裡是半年設定一個partition)。
SELECT count(1)
FROM wip_d_sn_detail
WHERE in_station_time >= TO_DATE ('20100101 00:00:00', 'YYYYMMDD HH24:MI:SS')
AND in_station_time < TO_DATE ('20100701 00:00:00', 'YYYYMMDD HH24:MI:SS') ;
查詢partition 3 中 0322~0323 這一天內的資料量是 52 萬 。
SELECT count(1)
FROM wip_d_sn_detail
WHERE in_station_time >= TO_DATE ('20100322 14:12:00', 'YYYYMMDD HH24:MI:SS')
AND in_station_time < TO_DATE ('20100323 14:12:00', 'YYYYMMDD HH24:MI:SS')
addhint.jpg
no-hint.jpg
具體執行計劃見圖片, wip_d_sn_detail 是一個分割槽表 ,半年一個分割槽,其中 20100101 ~ 20100701 是第三個分割槽。
查詢發現partition 3 的總資料量是 4100多萬, 報表需要查詢的時間段(一天) 資料量只有 52 萬 。
SELECT ROWNUM AS ID, plant_code, serial_number, work_order, batch_no,
model_name, product_line,
TO_CHAR (in_station_time, 'YYYY/MM/DD HH24:MI:SS') AS in_station_time,
op_no
FROM wip_d_sn_detail
WHERE ck_flag = 'N'
AND work_group ='KIT1'
AND plant_code IN ('MI02', 'MI03', 'MI04')
AND product_line ='J302'
AND in_station_time >= TO_DATE ('20100322 14:12:00', 'YYYYMMDD HH24:MI:SS')
AND in_station_time < TO_DATE ('20100323 14:12:00', 'YYYYMMDD HH24:MI:SS')
SELECT /*INDEX(wip_d_sn_detail,IDX_WIP_D_SN_DETAIL_TIME)*/
ROWNUM AS ID, plant_code, serial_number, work_order, batch_no,
model_name, product_line,
TO_CHAR (in_station_time, 'YYYY/MM/DD HH24:MI:SS') AS in_station_time,
op_no
FROM wip_d_sn_detail
WHERE ck_flag = 'N'
AND work_group ='KIT1'
AND plant_code IN ('MI02', 'MI03', 'MI04')
AND product_line ='J302'
AND in_station_time >= TO_DATE ('20100322 14:12:00', 'YYYYMMDD HH24:MI:SS')
AND in_station_time < TO_DATE ('20100323 14:12:00', 'YYYYMMDD HH24:MI:SS')
查詢partition 3 的總資料量是 4133萬 (說明: 這裡是半年設定一個partition)。
SELECT count(1)
FROM wip_d_sn_detail
WHERE in_station_time >= TO_DATE ('20100101 00:00:00', 'YYYYMMDD HH24:MI:SS')
AND in_station_time < TO_DATE ('20100701 00:00:00', 'YYYYMMDD HH24:MI:SS') ;
查詢partition 3 中 0322~0323 這一天內的資料量是 52 萬 。
SELECT count(1)
FROM wip_d_sn_detail
WHERE in_station_time >= TO_DATE ('20100322 14:12:00', 'YYYYMMDD HH24:MI:SS')
AND in_station_time < TO_DATE ('20100323 14:12:00', 'YYYYMMDD HH24:MI:SS')
addhint.jpg
no-hint.jpg
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-659776/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle實驗記錄(分割槽全表掃描(全區掃描) FTS 時候的成本計算)Oracle
- 使用全表掃描快取大表的相關問題快取
- 優化Oracle with全表掃描的問題優化Oracle
- Greenplum儲存過程使用分割槽表將進行全表掃描儲存過程
- 關於修改分割槽表的問題總結
- MySQL中的全表掃描和索引樹掃描MySql索引
- 優化Oracle with全表掃描的問題(二)優化Oracle
- 【實驗】【PARTITION】RANGE分割槽表截斷表分割槽(Truncate Partition)
- 【實驗】【PARTITION】RANGE分割槽表移動表分割槽(Move Partition)
- 分割槽表PARTITION table
- Oracle分割槽表(Partition Table)Oracle
- 分割槽表PARTITION table(轉)
- 【實驗】【PARTITION】RANGE分割槽表重新命名錶分割槽(Rename Partition)
- MySQL 分割槽表 partition線上修改分割槽欄位MySql
- 【實驗】【PARTITION】RANGE分割槽表合併分割槽
- 【實驗】【PARTITION】RANGE分割槽表增加分割槽
- 【實驗】【PARTITION】RANGE分割槽表刪除分割槽
- 關於分割槽表的操作
- Oracle中存取資料掃描Table及索引的方式(全表掃描,索引掃描等)Oracle索引
- partition 分割槽表重新命名
- 分割槽Partition
- 關於分割槽表的move操作
- 關於SQL Server的分割槽表SQLServer
- oracle實驗記錄 (分割槽表,掃描基數的計算)Oracle
- 優化全表掃描優化
- delete 與全表掃描delete
- oracle分割槽partition及分割槽索引partition index(一)Oracle索引Index
- 非分割槽錶轉換為分割槽表和partition indexIndex
- zt:東軟醫保動態庫全表掃描問題
- 查詢全表掃描的sqlSQL
- 使用索引快速全掃描(Index FFS)避免全表掃描的若干場景索引Index
- oracle 全表掃描,索引範圍掃描與塊的理解Oracle索引
- 分割槽表UNUSED列後的EXCHANGE PARTITION操作
- SqlServer關於分割槽表的總結SQLServer
- 關於分割槽表的概念及操作
- ORACLE全表掃描查詢Oracle
- 關於分割槽表和分割槽索引(About Partitioned Tables and Indexes)索引Index
- 聊聊分割槽Partition——我們為什麼要分割槽(中)