表的表空間在users和在system下的區別


在創建表的時候系統把表空間默認創建在users下,奇怪為什么不創建在system 下呢

把非系統用戶的表存放到系統表空間,至於為什么,原來系統對SYSTEM表空間的自動維護會占用CPU資源,

如果將普通用戶的表存放到系統表空間,效率會下降,下面是轉載的測試案例,數據庫(11.2.0.2.0 for linux 64bit)測試過程和結果如下:

 

 

create table t_users(id number); --創建的是 默認的用戶下
create table t_system(id number); --把表創建到系統用戶下
select table_name,tablespace_name from user_tables;

 

 

2.查看當前CPU消耗

SQL> select STATISTIC#,NAME from v$statname where name='CPU used by this session';

 

 

select * from v$mystat where STATISTIC#=16;

 

 

SQL> set timing on
SQL> begin
  2  for i in 1..100000 loop
  3  insert into t_users values(i);
  4  end loop;
  5  end;
  6  /
PL/SQL procedure successfully completed.
Elapsed: 00:00:03.83
SQL> select * from v$mystat where STATISTIC#=19;

 

 

 

 

 

 

 

4.向T_SYSTEM表插入數據,查看CPU消耗

SQL> begin
  2  for i in 1..100000 loop
  3  insert into t_system values(i);
  4  end loop;
  5  end;
  6  /
PL/SQL procedure successfully completed.
Elapsed: 00:00:11.41
SQL> select * from v$mystat where STATISTIC#=19;

 

 

 

可見,對存放到非系統表空間的表做同樣的INSERT操作,存放在USERS表空間的表只需要執行0秒20和141-120=21的CPU,而存放到SYSTEM表空間的表卻要執行0秒23和143-141=2的CPU, 為什么會這樣?請看下面兩個參數。

 

 

 db_block_checking參數對block進行邏輯校驗,數據庫發生update,insert等涉及數據塊發生改變的操作后,db_block_checking參數驗證每個數據塊內部或相關幾個塊邏輯的完整性,該參數有六個值:OFF,LOW,MEDIUM,FULL,TRUE,FALSE,這些參數含義如下:
LOW:基本的數據塊header checks
MEDIUM:數據塊內部的全面檢測,(不包含index organized table blocks)
FULL:對數據庫中所有的塊進行全面檢測(包括index block)
OFF: 禁用DB_BLOCK_CHECKING功能(SYSTEM tablespace除外,詳見下文的隱含參數)
true,false是為了向后兼容保留的,true=FULL,false=OFF)
db_block_checksum參數對數據塊進行物理校驗,在block寫入磁盤和讀出磁盤時,oracle會對每個block生成一個校驗碼,並和block header中校驗碼進行比對,校驗數據塊的一致性.此外該參數也對log block執行同樣的檢測,此外11G中對log block的檢測有所細化,該參數有五個值:OFF,FULL,TYPICAL,TRUE,FALSE,這些參數含義如下:
OFF:禁用DB_BLOCK_CHECKSUM功能(SYSTEM tablespace除外,詳見下文隱含參數)
TYPICAL:數據塊讀出和寫入時對數據塊進行物理校驗(默認值)
FULL: 除了TYPEICAL的功能外,還可以對內存中每個BLOCK發生變化(insert,update)的前后進行校驗,但這個功能並不能代替DB_BLOCK_CHECKING參數的功能.
true,false是為了向后兼容保留的,true=FULL,false=OFF)
無論db_block_checking和db_block_checksum這兩個參數的值為何值,SYSTEM 表空間都會執行block checks.不受上述參數影響,跟隱含參數_db_always_check_system_ts有關,該參數默認為TRUE。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM