日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

段的创建表user_segments

發(fā)布時(shí)間:2024/1/23 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 段的创建表user_segments 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、段的定義及類型

Oracle中的段(segment)是占用磁盤空間的一個(gè)對(duì)象,最常見(jiàn)的段類型包括:

l? 聚簇cluster

l? 表table

l? 表分區(qū) tablepartition

l? 索引 index

l? 索引分區(qū)

l? Lob分區(qū)lob partition、lob子分區(qū)lobsubpartition、lob索引lobindex、lob段lob segmnent

l? 嵌套表 nestedtable

l? 回滾段rollback

詳細(xì)介紹可見(jiàn)《編程藝術(shù)》P313

2、段的創(chuàng)建

在表、索引等創(chuàng)建的過(guò)程中(在11gR2中,段的創(chuàng)建要等到第一條數(shù)據(jù)被插入時(shí)),事實(shí)上即在創(chuàng)建段,從user_segment可以查看已創(chuàng)建的段

(1)創(chuàng)建一個(gè)基本表,查看所分配的段

10.2.0.4:

SQL> create table t(id number);Table created.SQL> select * from user_segments;SEGMENT_NAME PARTITION_NAME SEGMENT_TYPE TABLESPACE_NAME BYTES BLOCKS EXTENTS INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS PCT_INCREASE FREELISTS FREELIST_GROUPS BUFFER_ T TABLE USERS 65536 8 1 65536 1 2147483645 DEFAULT

11gR2:

test@IRMSDC2> create table t(idnumber);Table created.test@IRMSDC2> select * from user_segments;no rows selectedtest@IRMSDC2> insert into t(id)values(1);1 row created.test@IRMSDC2> select * fromuser_segments;SEGMENT_NAME PARTITION_NAME SEGMENT_TYPE SEGMENT_SUTABLESPACE_NAME BYTES BLOCKS EXTENTS INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS MAX_SIZE RETENTI MINRETENTION --------------------------------------------------------------------------------------------------------------- ------------------ ---------------------------------------- ---------- ---------- ---------- ------------------------- ----------- ----------- ---------- ------- ------------ PCT_INCREASE FREELISTS FREELIST_GROUPS BUFFER_ FLASH_CCELL_FL ------------ ---------- ---------------------- ------- ------- T TABLE ASSM USERS 65536 8 1 65536 1048576 1 2147483645 2147483645DEFAULTDEFAULT DEFAULT

由此可見(jiàn),在11gR2中,只有插入數(shù)據(jù)后才會(huì)分配段空間。以下操作均在10g中進(jìn)行,在11g中只要插入一條數(shù)據(jù)或者在創(chuàng)建表時(shí)指定segment creation immediate即可得到相同效果。

(2)創(chuàng)建一個(gè)帶主鍵的表,查看所分配的段?

SQL> create table t2(id numberprimary key);Table created.SQL> select * fromuser_segments; SEGMENT_NAME PARTITION_NAME SEGMENT_TYPE TABLESPACE_NAME BYTES BLOCKS EXTENTS INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS PCT_INCREASE FREELISTS FREELIST_GROUPS BUFFER_ --------------------------------------------------------------------------------------------------------------- ------------------------------------------------ ---------- ---------- ---------- ------------------------- ----------- ----------- ------------ ---------- ---------------------- T TABLE USERS 65536 8 1 65536 1 2147483645 DEFAULT T2 TABLE USERS 65536 8 1 65536 1 2147483645 DEFAULT SYS_C00326438 INDEX USERS 65536 8 1 65536 1 2147483645 DEFAULT

(3)創(chuàng)建一個(gè)有l(wèi)ob字段的表,查看所分配的段

SQL> createtable t3(x int primary key, y clob, z blob);Table created. SQL> select segment_name,segment_type,tablespace_name,bytes,blocks,extents from user_segments; SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME BYTES BLOCKS EXTENTS ------------------------------------------------ ------------------------------ ---------- -------------------- T TABLE USERS 65536 8 1 T2 TABLE USERS 65536 8 1 SYS_C00326438 INDEX USERS 65536 8 1 T3 TABLE USERS 65536 8 1 SYS_LOB0000469684C00002$$ LOBSEGMENT USERS 65536 8 1 SYS_IL0000469684C00002$$ LOBINDEX USERS 65536 8 1 SYS_LOB0000469684C00003$$ LOBSEGMENT USERS 65536 8 1 SYS_IL0000469684C00003$$ LOBINDEX USERS 65536 8 1 SYS_C00326439 INDEX USERS 65536 8 19 rowsselected.

由此可見(jiàn),t只創(chuàng)建一個(gè)表的段,t2創(chuàng)建了一個(gè)表段以及一個(gè)索引段,t3創(chuàng)建了一個(gè)表段、一個(gè)索引段、2個(gè)lobindex,2個(gè)lobsegment。

結(jié)論:創(chuàng)建一個(gè)表時(shí),表的信息及數(shù)據(jù)可能會(huì)分散到多個(gè)段之中,每個(gè)段保存著一部分信息,而段由區(qū)組成,區(qū)由oracle塊組成,oracle塊由操作系統(tǒng)組成。

創(chuàng)建一個(gè)新段時(shí),默認(rèn)由1個(gè)區(qū)、8個(gè)塊組成,共計(jì)8K*8空間,默認(rèn)情況下oracle塊大小為8k.

SQL> show parameter block_size;NAME TYPE VALUE ------------------------------------------------------------------ ------------------------------ db_block_size integer 8192

(4)插入大量數(shù)據(jù)

在表t中插入大量數(shù)據(jù),觀察段大小的變化

SQL> conn / as sysdba Connected. SQL> INSERT INTO test.t SELECT ROWNUMFROM dba_TABLES WHERE ROWNUM <= 10000;10000 rows created.SQL> conn test/test_123; Connected. SQL> selectsegment_name, segment_type,tablespace_name,bytes,blocks,extents fromuser_segments;SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME BYTES BLOCKS EXTENTS ------------------------------------------------ ------------------------------ ---------- -------------------- T TABLE USERS 196608 24 3 T2 TABLE USERS 65536 8 1 SYS_C00326438 INDEX USERS 65536 8 1 T3 TABLE USERS 65536 8 1 SYS_LOB0000469684C00002$$ LOBSEGMENT USERS 65536 8 1 SYS_IL0000469684C00002$$ LOBINDEX USERS 65536 8 1 SYS_LOB0000469684C00003$$ LOBSEGMENT USERS 65536 8 1 SYS_IL0000469684C00003$$ LOBINDEX USERS 65536 8 1 SYS_C00326439 INDEX USERS 65536 8 19 rows selected.


可見(jiàn),區(qū)增長(zhǎng)為3個(gè),block增長(zhǎng)到24個(gè),即段占用空間為24*8K。

注:字典/本地表空間管理決定了如何把空間分配給各個(gè)表,而ASSM/MSSM決定了如何把表已經(jīng)擁有的空間分配給各行,以及如何管理各個(gè)區(qū)、塊,如通過(guò)PCTFREE指定每個(gè)塊應(yīng)該預(yù)留多少空間用于將來(lái)的更新。 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的段的创建表user_segments的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。