索引與檢視的建立與應用
1、理解索引和點陣圖索引的基本概念
2、掌握索引和點陣圖索引的建立方法,並使用索引對查詢過程產生的影響進行分析
3、理解檢視的基本概念
4、掌握檢視的建立方法,並對檢視中資料查詢與更新進行操作,明確其使用的注意事項。
實驗步驟:
1、建立有特點的大資料表。
為了保證索引產生前後,查詢效果的正確比對,應建立一個存在大量資料的測試表。這個測試表的資料來源於SYS模式下的all_objects檢視,其中包括本資料庫例項中的全部物件的基本描述,具體包括物件的所有者、物件名稱、建立日期等資訊。
建立測試表的具體過程:
1)以sys賬號登入資料庫
cmd>sqlplus sys/
SQL> CREATE TABLE scott.DemoTable as
SQL>2 SELECT * FROM all_objects
SQL>3 WHERE owner IN ('SYS','PUBLIC','SCOTT');
注意使用者名稱字母必須大寫。
conn scott/
2、查詢統計資料表的各資料量大小,瞭解大資料表中的基本情況。
1)瞭解測試表的欄位構成
DESC demoTable;
1)查詢各使用者記錄數
SELECT owner, count(*) 記錄數
FROM demoTable
GROUP BY owner;
SELECT count(DISTINCT owner) 所有者數量
,count(DISTINCT OBJECT_TYPE) 物件型別數量
,count(DISTINCT OBJECT_name) 物件名稱數量
FROM demoTable;
3、分析表,開啟追蹤
analyze table demoTable compute statistics;
set autotrace trace explain --開啟追蹤
注意:關閉追蹤的方法為 set autotrace off;
4、對比建立索引前後的查詢操作的差異
1)無索引時執行查詢(注意:名稱中字母都要大寫)
SELECT * FROM demoTable where object_name = 'EMP';
2)建立object_name索引後執行
--建立索引
CREATE INDEX idx_objectName ON demoTable(object_name);
SELECT * FROM demoTable where object_name = 'EMP';
SELECT * FROM demoTable where owner ='SCOTT';
小結:建立索引只對索引欄位出現在where語句中有效。
3)建立owner索引後執行
--建立索引
CREATE INDEX idx_owner ON demoTable(owner);
SELECT * FROM demoTable where object_name = 'EMP';
SELECT * FROM demoTable where owner ='SCOTT';
SELECT count(*) FROM demoTable where owner ='SCOTT';
4)建立點陣圖索引後執行
--刪除原有owner索引
DROP INDEX idx_owner;
CREATE BITMAP INDEX idx_owner_bitmap ON demoTable(owner);
SELECT * FROM demoTable where object_name = 'EMP';
SELECT * FROM demoTable where owner ='SCOTT';
SELECT count(*) FROM demoTable where owner ='SCOTT';
5、索引的應用小結
索引類似於座次表,是對資料(記錄中的特定欄位的值)的位置進行排序優化後的樹狀儲存結構,
一定是在大資料的環境下有效
索引的優點:提高資料查詢指定欄位 效率,先建立指定欄位的索引,並且指定欄位的值具有離散性高的特點
缺點:佔用空間、降低資料更新的效率
適用於查詢多,更新少的大資料環境
6、建立檢視
CREATE VIEW vw_test AS
select *
from emp
where sal+nvl(comm,0) > 2500;
CREATE VIEW vw_SalSummary as
select dname,avg(sal) avgSal,min(sal) minSal,max(sal) maxSal
from dept,emp
where dept.deptno = emp.deptno
group by dname;
7、更新檢視
UPDATE vw_test set sal= 1000;
UPDATE vw_salSummary set avgSal=1000;8、檢視的應用小結
檢視優點:可以簡化應用,方便許可權管理,整合多來源資料、面向應用重組資料
檢視中只能在簡單檢視中進行更新,但有可能更新資料後導致檢視記錄數發生變化。
注意:部分建立程式碼由於之前檔案已經建立好,為了名稱一致,不再另建。