課程實踐(二)續
案例二
點選(此處)摺疊或開啟
-
--drop_customers_indexes.sql. 刪除customers表上除主鍵索引外的所有索引
-
SET TERMOUT OFF
-
--儲存當前SQL*Plus系統變數的設定
-
STORE SET sqlplus_settings replace
-
--保護SQL*Plus buffer
-
SAVE buffer.sql replace
-
SET TIMING OFF HEADING OFF VERIFY OFF AUTOTRACE OFF FEEDBACK OFF
-
--儲存生成的SQL語句
-
SPOOL dait.sql
-
SELECT \'DROP INDEX \' || i.index_name || \';\' FROM user_indexes i
-
WHERE i.table_name = \'CUSTOMERS\'
-
AND NOT EXISTS
-
(SELECT \'x\' FROM user_constraints c
-
WHERE c.index_name = i.index_name AND c.table_name = i.table_name AND c.status = \'ENABLED\');
-
SPOOL OFF
-
-
@dait
-
--恢復SQL*Plus buffer
-
GET buffer.sql NOLIST
-
--恢復SQL*Plus系統變數設定
-
@sqlplus_settings
-
SET TERMOUT ON
-
-
--執行drop_customers_indexes.sql指令碼
-
sh@TESTDB11>@drop_customers_indexes.sql
-
-
--query00.sql. 沒有索引走全表掃描,成本比較高
-
-
SET ECHO ON
-
SET TIMING ON
-
SET AUTOTRACE TRACEONLY
-
SET PAGESIZE 1000
-
-
@flush.sql
-
SELECT /*+ FULL(c) */ c.* FROM customers c
-
WHERE cust_gender = \'M\' AND cust_postal_code = 40804 AND cust_credit_limit = 10000;
-
-
SET TIMING OFF
-
SET AUTOTRACE OFF
-
-
--執行query00.sql,
- sh@TESTDB11>@query00.sql
點選(此處)摺疊或開啟
-
--在CUSTOMERS表上建立三個索引,並檢視
-
sh@TESTDB11>SET ECHO ON
-
sh@TESTDB11>CREATE INDEX idx_cust_gender ON customers (cust_gender) NOLOGGING COMPUTE STATISTICS;
-
sh@TESTDB11>CREATE INDEX idx_cust_postal_code ON CUSTOMERS(cust_postal_code) NOLOGGING COMPUTE STATISTICS;
-
sh@TESTDB11>CREATE INDEX idx_cust_credit_limit ON CUSTOMERS(cust_credit_limit) NOLOGGING COMPUTE STATISTICS;
-
-
SELECT ui.table_name, DECODE(ui.index_type, \'NORMAL\', ui.uniqueness, ui.index_type) AS index_type,
-
ui.index_name
-
FROM user_indexes ui WHERE ui.table_name = \'CUSTOMERS\'
- ORDER BY ui.table_name, ui.uniqueness DESC;
點選(此處)摺疊或開啟
-
--開始監視customers表上的索引
-
sh@TESTDB11>ALTER INDEX customers_pk MONITORING USAGE;
-
sh@TESTDB11>ALTER INDEX idx_cust_gender MONITORING USAGE;
-
sh@TESTDB11>ALTER INDEX idx_cust_credit_limit MONITORING USAGE;
-
sh@TESTDB11>ALTER INDEX idx_cust_postal_code MONITORING USAGE;
-
-
--檢視索引使用情況
- sh@TESTDB11>SELECT * FROM v$object_usage;
點選(此處)摺疊或開啟
-
--query01.sql
-
--優化器選擇使用一個索引, 走INDEX FULL SCAN, 成本比全表掃描低.
-
SET ECHO ON
-
SET TIMING ON
-
SET AUTOTRACE TRACEONLY
-
SET PAGESIZE 1000
-
@flush.sql
-
SELECT /*+ INDEX(c) */ c.* FROM customers
-
WHERE cust_gender = \'M\' AND cust_postal_code = 40804 AND cust_credit_limit = 10000;
-
-
SET TIMING OFF
-
SET AUTOTRACE OFF
-
-
--執行query01.sql指令碼,
- sh@TESTDB11>@query01.sql
點選(此處)摺疊或開啟
-
--query02.sql
-
--走點陣圖索引,比全表掃描還慢
-
SET ECHO ON
-
SET TIMING ON
-
SET AUTOTRACE TRACEONLY
-
SET PAGESIZE 1000
-
-
@flush.sql
-
SELECT /*+ INDEX_COMBINE(c) */ c.* FROM customers c
-
WHERE cust_gender = \'M\' AND cust_postal_code = 40804 AND cust_credit_limit = 10000;
-
-
SET TIMING OFF
-
SET AUTOTRACE OFF
-
點選(此處)摺疊或開啟
-
--檢視索引的使用情況
- sh@TESTDB11>SELECT * FROM v$object_usage;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17013648/viewspace-1072461/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 課程實踐(一)續
- 課程實踐(二)
- 課程實踐(一)續1
- 課程實踐(一)
- 實踐JavaWeb課程專案JavaWeb
- 作業系統課程實踐報告作業系統
- 武漢專場|第二期《資料安全實踐專題培訓》課程即將開課
- [Triton課程筆記] 2.2.3 BLS續筆記
- 持續交付體系在高德的實踐歷程
- 企業級實戰大資料課程(二)-尹成-專題視訊課程大資料
- 機器學習業務實踐之路-李博-專題視訊課程機器學習
- spark sql 實踐(續)SparkSQL
- 軟體工程的實踐專案課程的自我目標軟體工程
- DevOps企業實踐和價值-CSDN公開課-專題視訊課程dev
- 課程報名丨“重大活動”網路安全保障中的攻守實踐
- 持續整合領域的智慧排程探索及實踐 - 黃佳鑫
- C#課外實踐——校園二手平臺(心得篇)C#
- 持續交付探索與實踐(二):自動化工具鏈建設
- 資料採集與融合技術實驗課程作業二
- Flutter web 持續整合實踐FlutterWeb
- Redis Cluster深入與實踐(續)Redis
- 持續整合(三):最佳實踐
- 我的慕課實戰課程上線了
- 微信小程式前置課程:flex佈局(二)微信小程式Flex
- 大資料公開課系列課程第二季-趙強老師-專題視訊課程大資料
- TDD 實踐-FizzFuzzWhizz(二)
- DHCP最佳實踐(二)
- CI/CD 持續整合部署實踐
- (續)Css in js 一次實踐CSSJS
- Jenkins & Docker 持續整合實踐JenkinsDocker
- Python課程程式碼實現Python
- 線上課程|儲存與計算分離,京東在Elasticsearch上的實踐分享Elasticsearch
- [Strata Data Conference培訓課程] Apache Spark高階實踐和原理解析ApacheSpark
- 【課程筆記】中科大凸優化(二)筆記優化
- 北航OS課程筆記--二、系統引導筆記
- C#課外實踐——校園二手平臺(技術篇2)C#
- C#課外實踐——校園二手平臺(技術篇3)C#
- C#課外實踐——校園二手平臺(技術篇1)C#