>進入 理論上,我們進行表分區都是為了提升性能,加快查詢速度。但是有的時候,不但不能加快查詢速度,反而拖累的查詢速度。下面舉的一個例子就是這樣的: 假設某一個表是按照主鍵散列分區,創建表如下所 " />
歡迎進入Oracle社區論壇,與200萬技術人員互動交流 >>進入 理論上,我們進行表分區都是為了提升性能,加快查詢速度。但是有的時候,不但不能加快查詢速度,反而拖累的查詢速度。下面舉的一個例子就是這樣的: 假設某一個表是按照主鍵散列分區,創建表如下所
歡迎進入Oracle社區論壇,與200萬技術人員互動交流 >>進入
理論上,我們進行表分區都是為了提升性能,加快查詢速度。但是有的時候,不但不能加快查詢速度,反而拖累的查詢速度。下面舉的一個例子就是這樣的:
假設某一個表是按照主鍵散列分區,創建表如下所示:
Sql代碼
create table t
( OWNER, OBJECT_NAME, SUBOBJECT_NAME, OBJECT_ID, DATA_OBJECT_ID,
OBJECT_TYPE, CREATED, LAST_DDL_TIME, TIMESTAMP, STATUS,
TEMPORARY, GENERATED, SECONDARY )
partition by hash(object_id)
partitions 16
as
select * from all_objects;
我們經常要在表上面,根據owner 或者 object_type,object_name 或者owner, object_type,object_name進行查詢。于是我們想到在這三列上建立一個局部索引。如下所示:
Sql代碼
create index t_idx
on t(owner,object_type,object_name)
LOCAL
運行一個存儲過程收集cpu耗用等信息:
Sql代碼
begin
dbms_stats.gather_table_stats
( user, 'T', cascade=>true);
end;
/
改變幾個會話屬性,便于允許TKPROF
Sql代碼
alter session set timed_statistics=true;
alter session set events '10046 trace name context forever,level 12';
執行如下SQL語句:
Sql代碼
select * from t where owner='SCOTT' and object_type = 'TABLE' and object_name = 'EMP';
select * from all_objects where owner='SCOTT' and object_type = 'TABLE' and object_name = 'EMP';
[1] [2]
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com