亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Oracle > 正文

oracle 使用雜記1

2024-08-29 13:49:18
字體:
來源:轉載
供稿:網友

  
一直學習Oracle 希望能和大家共同探討問題 如有不對之處還請指出

index 種對null的使用
================================================================

有些情況可以用 " N/A " 代替 NULL

================================================================

8i 以上使用基于函數的index 可以用上 null

create table t (n number);
create index ind_n on t(n,1);   //  用 t(n,'a') 更省空間

select v from t where n is null;

V
--------------------
lg

Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=CHOOSE (Cost=3 Card=614 Bytes=6140)
   1    0   TABLE access (BY INDEX ROWID) OF 'T' (Cost=3 Card=614 Bytes=6140)
   2    1     INDEX (RANGE SCAN) OF 'IND_N' (NON-UNIQUE) (Cost=3 Card=614)

要記住用 CBO
I doesn't need query rewrite to make that leap, it is a "safe" Operation.

==============================================================

null 可以在 bitmap index 中使用

==============================================================

或者象下面這樣使用多列組合的index 方便使用index

create table t ( f_seq int, t_seq int, x char(1) );
create index t_idx on t(f_seq,t_seq);

select f_seq, t_seq from t where f_seq > 0 and t_seq is null;

Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=CHOOSE
   1    0   INDEX (RANGE SCAN) OF 'T_IDX' (NON-UNIQUE)

select f_seq, t_seq, x from t  where f_seq > 0 and t_seq is null;

Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=CHOOSE
   1    0   TABLE ACCESS (BY INDEX ROWID) OF 'T'
   2    1     INDEX (RANGE SCAN) OF 'T_IDX' (NON-UNIQUE)

===============================================================

 

 

                                           表所占空間的大小   

select segment_name, round(blocks*8/1024, 0) table_size from user_segments where segment_type='
TABLE';
---- 你可以知道你的表的實際size (單位: M)

-----------------------------------------------------------------------------------------

數據字典表DBA_TABLES、ALL_TABLES、USER_TABLES

select table_name,initial_extent,next_extent,min_extents,max_extents,pct_increase
from user_tables;

-----------------------------------------------------------------------------------------

分析一對象實際使用的塊
     analyze table lg.t compute statistics;

分析完后就可以看一對象實際使用的塊
    select blocks,num_rows,empty_blocks,avg_space,avg_row_len
                   from dba_tables where owner='LG' and table_name='T';
select table_name, round(avg_row_len*num_rows/1024/1024, 0) data_size from user_tables;
---- 你可以知道表中大約的data size (單位: M)
-----------------------------------------------------------------------------------------

select count(distinct substr(rowid,1,15)) "how many use of block" from a;

這是看一個表真正使用了多少數據塊 dba_tables 的 blocks 顯示了 HWM 下不包含行的塊的數目


-----------------------------------------------------------------------------------------

declare
   l_total_blocks        number;
   l_total_bytes         number;
   l_unused_blocks       number;
   l_unused_bytes        number;
   l_LastUsedExtFileId         number;
   l_LastUsedExtBlockId        number;
   l_last_used_block           number;
   l varchar2(128);
   t varchar2(128);
begin
   l:=upper('&name');
   select object_type into t from user_objects where object_name=l;
   dbms_space.unused_space(
      segment_owner     =>USER,
   segment_name      =>l,
   segment_type      =>t,
   partition_name    => null,
            total_blocks      => l_total_blocks,
            total_bytes       => l_total_bytes,
            unused_blocks     => l_unused_blocks,
            unused_bytes      =>
l_unused_bytes,
         last_used_extent_file_id => l_LastUsedExtFileId,
            last_used_extent_block_id => l_LastUsedExtBlockId,
            last_used_block => l_last_used_block  );
    dbms_output.put_line(RPAD(('total_blocks: 'l_total_blocks),40,' ')'total_bytes: 'l_total_bytes);
    dbms_output.put_line(RPAD(('unused_blocks: 'l_unused_blocks),40,' ')'unused_bytes: 'l_unused_bytes);
    dbms_output.put_line(RPAD(('last_used_extent_file_id: 'l_LastUsedExtFileId),40,' ') 'last_used_extent_block_id: 'l_LastUsedExtBlockId);
    dbms_output.put_line('last_used_block: 'l_last_used_block);
end;
/

 

                                           sequence

<<  Oracle9i Database Administrator's Guide  >>  20

if your application can never lose sequence numbers, then you cannot use Oracle sequences
and you may choose to store sequence numbers in database tables.

CREATE SEQUENCE  // 需要的系統權限

create sequence lg_sequence
      start with 1
      increment by 1
      order        //保證每個序列值都比先前的大, ********在并行服務中有用
      nocycle;     //防止循環又回到初始值
      NOCACHE NOORDER;
     
默認cache 為 20 直接 shutdown abort 后在內存中緩存的序列就會消失
        startup后從上次shutdown以前的 sys.seq$ 的HIGHWATER 的值開始

      最大值1.0E+27  1后面27個零
      lg_sequence.nextval
      lg_sequence.currval
     
     
alter sequence lg_sequence         //  alter sequence squ_1 increment by trunc(9999999/2);
     increment by 997;    //假如序列之前是2,這樣一改就是999
          //是逐漸在原有的基礎上漲的

oracle   不支持復制 sequence

-------------------------------    eXP sequence    --------------------------------------

sequences are objects -- just like a table, PRocedure, view, package, etc.
 
      要exp sequence 那就 export a database or schema, that will get the sequences.

或者    select 'create sequence ' sequence_name ' start with ' last_number+1
        ';' from user_sequences where.....;


 

由于是雜記 想到什么就寫的什么 可能有點亂 請大家多包涵

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲第五色综合网| 中文字幕亚洲综合久久筱田步美| 亚洲一区二区免费在线| 国产成人免费av电影| 好吊成人免视频| 国产国产精品人在线视| 亚洲精品99久久久久| 亚洲图片在线综合| 97久久国产精品| 久久在线视频在线| zzijzzij亚洲日本成熟少妇| 成人信息集中地欧美| 日韩av电影院| 欧美成人全部免费| 国产成人精品一区二区在线| 这里只有精品视频| 日韩在线不卡视频| 中文字幕av一区二区三区谷原希美| 欧美精品久久久久久久久| 久久久久久999| 久久人人爽人人爽人人片亚洲| 国产成人精品电影| 91色精品视频在线| 亚洲黄页网在线观看| 欧美性猛交xxxx乱大交极品| 成人福利在线观看| 国产精品极品美女在线观看免费| 91精品视频免费| 日韩精品视频三区| 欧美疯狂做受xxxx高潮| 久久亚洲综合国产精品99麻豆精品福利| 国产精品久久久久久久久久东京| 国产精品久久久久久久久久小说| 亚洲国产精品高清久久久| 波霸ol色综合久久| 九九久久精品一区| 亚洲精品91美女久久久久久久| 欧美激情综合色综合啪啪五月| 亚洲欧美另类自拍| 亚洲午夜精品久久久久久久久久久久| 亚洲精品ady| 欧美精品www在线观看| 欧美性猛xxx| 欧美黑人性生活视频| 欧美第一黄网免费网站| 国产精品露脸自拍| 中文字幕一区电影| 日韩精品中文字| 精品色蜜蜜精品视频在线观看| 亚洲精品国产免费| 亚洲欧美日韩综合| 亚洲aⅴ男人的天堂在线观看| 欧美不卡视频一区发布| 欧美亚洲午夜视频在线观看| 韩曰欧美视频免费观看| 欧美理论电影在线观看| 久久久久久久久亚洲| 欧美一级高清免费| 国产成人午夜视频网址| 麻豆乱码国产一区二区三区| 精品女同一区二区三区在线播放| 色一情一乱一区二区| 国产精品久久久91| 国产欧美精品在线播放| 久久久久久久久国产| 久久6精品影院| 91视频-88av| 精品成人国产在线观看男人呻吟| 在线丨暗呦小u女国产精品| 久久成人亚洲精品| 国产三级精品网站| 欧美最猛黑人xxxx黑人猛叫黄| 亚洲欧美另类在线观看| 久久久久久久久久久免费| 国产精品国产福利国产秒拍| 精品国产乱码久久久久久婷婷| 亚洲免费影视第一页| 97在线观看视频| 欧美日韩国产成人| 92福利视频午夜1000合集在线观看| 精品中文字幕视频| 国内外成人免费激情在线视频| 中文字幕国产精品久久| 亚洲天天在线日亚洲洲精| 国产一区二区三区视频| 欧美理论在线观看| 欧美天天综合色影久久精品| 国产一区二区三区丝袜| 亚洲人在线观看| 日韩电视剧免费观看网站| 日本免费在线精品| 欧美色道久久88综合亚洲精品| 久久久国产精品免费| 热久久这里只有精品| 欧美一区二区三区……| 亚洲成人黄色网| 久久亚洲精品小早川怜子66| 性亚洲最疯狂xxxx高清| 日韩av手机在线观看| 91免费视频网站| 久久久久久久久久久网站| 国语自产精品视频在免费| 国产啪精品视频| 亚洲欧美综合另类中字| 国产精品美女久久久久av超清| 亚洲第一网中文字幕| 国产精品欧美风情| 欧美极品第一页| 亚洲第一av在线| 2023亚洲男人天堂| 2021国产精品视频| 97人洗澡人人免费公开视频碰碰碰| 欧美激情免费视频| 高清日韩电视剧大全免费播放在线观看| 欧美日韩中国免费专区在线看| 国产成人小视频在线观看| 久久视频这里只有精品| 精品无人国产偷自产在线| 国产日韩在线免费| 久久影视电视剧凤归四时歌| 91极品女神在线| 亚洲第一精品夜夜躁人人躁| 精品毛片三在线观看| 欧美激情女人20p| 亚洲视频国产视频| 国内精品久久久久影院 日本资源| 亚洲毛片一区二区| 668精品在线视频| 国产欧美最新羞羞视频在线观看| 欧美成人精品一区二区| 日韩av在线免播放器| 亚洲欧美中文日韩v在线观看| 欧美日本啪啪无遮挡网站| 日韩中文在线观看| 久久久久久免费精品| 久久精品美女视频网站| 在线看片第一页欧美| 色999日韩欧美国产| 日韩av片电影专区| 日韩在线视频二区| 欧美性视频网站| 91久久精品美女高潮| 日韩一二三在线视频播| 91精品久久久久久久久青青| 亚洲国产精品小视频| 欧美精品在线观看| 一本色道久久综合狠狠躁篇怎么玩| 亚洲天堂开心观看| 久久影视免费观看| 日韩av第一页| 日韩欧美中文字幕在线播放| 欧美国产日韩中文字幕在线| 久久久成人的性感天堂| 久久久中文字幕| 亚洲视频在线观看视频| 亚洲国产欧美久久| 91精品综合久久久久久五月天| 国产suv精品一区二区| 久久久最新网址| 欧美精品在线看| 色哟哟网站入口亚洲精品| 中文字幕日韩精品在线| 91av在线播放| 欧美激情国产日韩精品一区18|