索引聚簇因子相关

mac2022-06-30  109

create or replace function clustering_factor(p_owner in varchar2,p_table_name in varchar2,p_column_name in varchar2)return number isl_cursor sys_refcursor;l_clustering_factor binary_integer:=0;l_block_nr binary_integer:=0;l_previous_block_nr binary_integer:=0;l_file_nr binary_integer :=0;l_previous_file_nr binary_integer:=0;begin  open l_cursor for ' select dbms_rowid.rowid_block_number(rowid) block_nr,'||  '        dbms_rowid.rowid_to_absolute_fno(rowid,'''||          p_owner||''','''||          p_table_name||''') file_nr '||          'FROM ' ||p_owner||'.'||p_table_name||' ' ||          'where  '||p_column_name||' is not null '||          ' order by  '||p_column_name;          loop            fetch l_cursor into l_block_nr,l_file_nr;            exit when l_cursor%notfound;            if (l_previous_block_nr <> l_block_nr or l_previous_file_nr <>l_file_nr )              then                l_clustering_factor:=l_clustering_factor+1;                end if;                l_previous_block_nr:=l_block_nr;                l_previous_file_nr:=l_file_nr;                end loop;                close l_cursor;                return l_clustering_factor; end clustering_factor;1636select i.index_name,i.clustering_factor,clustering_factor(user,i.table_name,ic.COLUMN_NAME) as my_clstffrom user_indexes i,user_ind_columns ic where i.table_name='T' and i.index_name=ic.INDEX_NAME;INDEX_NAME                     CLUSTERING_FACTOR   MY_CLSTF------------------------------ ----------------- ----------T_PK                                         972        972T_VAL1_I                                     508        508T_VAL2_I                                     174        174

转载于:https://www.cnblogs.com/iyoume2008/p/6930995.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)