從dba_segments提取資料庫最消耗空間的top10資料庫物件或segments

wisdomone1發表於2015-08-27

結論:



   統計前10臺的消耗空間的資料庫物件,為了清晰起見,我基於不同的段物件進行分別抽取


   --抽取TOP10的TABLE
 select owner,segment_name,gb from (select owner,segment_name,bytes/1024/1024/1024 as gb,rownum rn from dba_segments where segment_type='TABLE' order by 3 desc) where rn<=10;


  ----提取top10的table partition
 select owner,segment_name,gb 
 from (select  owner,segment_name,gb,rownum rn 
    from (select owner,segment_name,sum(bytes/1024/1024/1024) as gb
        from dba_segments 
        where segment_type='TABLE PARTITION' 
        group by owner,segment_name 
        order by 3 desc))
 where rn<=10;




--獲取top 10的table subpartition
 select owner,segment_name,gb 
 from (select  owner,segment_name,gb,rownum rn 
    from (select owner,segment_name,sum(bytes/1024/1024/1024) as gb
        from dba_segments 
        where segment_type='TABLE SUBPARTITION' 
        group by owner,segment_name 
        order by 3 desc))
 where rn<=10;




 --獲取TOP10的INDEX
select owner,segment_name,gb from (select owner,segment_name,bytes/1024/1024/1024 as gb,rownum rn from dba_segments where segment_type='INDEX' order by 3 desc) where rn<=10;




--獲取TOP10的INDEX PARTITION
 select owner,segment_name,gb 
 from (select  owner,segment_name,gb,rownum rn 
    from (select owner,segment_name,sum(bytes/1024/1024/1024) as gb
        from dba_segments 
        where segment_type='INDEX PARTITION' 
        group by owner,segment_name 
        order by 3 desc))
 where rn<=10;


--獲取TOP10的INDEX SUBPARTITION
 select owner,segment_name,gb 
 from (select  owner,segment_name,gb,rownum rn 
    from (select owner,segment_name,sum(bytes/1024/1024/1024) as gb
        from dba_segments 
        where segment_type='INDEX SUBPARTITION' 
        group by owner,segment_name 
        order by 3 desc))
 where rn<=10;




 --獲取TOP10的LOBSEGMENT
 select owner,segment_name,gb from (select owner,segment_name,bytes/1024/1024/1024 as gb,rownum rn from dba_segments where segment_type='LOBSEGMENT' order by 3 desc) where rn<=10;


--獲取TOP10的LOB PARTITION
 select owner,segment_name,gb 
 from (select  owner,segment_name,gb,rownum rn 
    from (select owner,segment_name,sum(bytes/1024/1024/1024) as gb
        from dba_segments 
        where segment_type='LOB PARTITION' 
        group by owner,segment_name 
        order by 3 desc))
 where rn<=10;




 --獲取TOP10的CLUSTER
select owner,segment_name,gb from (select owner,segment_name,bytes/1024/1024/1024 as gb,rownum rn from dba_segments where segment_type='CLUSTER' order by 3 desc) where rn<=10;
引子
      今天在巡檢資料庫伺服器的檔案系統時,發現承載資料檔案的檔案系統剩餘率極小,於是客戶讓我在資料庫中排查下哪些資料庫物件最消耗空間,然後考慮可否
 最佳化與調整,減少不必要的空間佔用與資源浪費。




測試



1,資料庫段物件共計12種,我們主要研究如下型別:
index,index parittion,
lob partition,lob segment,logindex,
cluster,
table,table SUBPARTITION,table PARTITION,
nested table,
type2 undo,
SQL> select distinct segment_type from dba_segments;




SEGMENT_TYPE
------------------
ROLLBACK
INDEX
TABLE SUBPARTITION
LOBINDEX
TABLE PARTITION
NESTED TABLE
TYPE2 UNDO
TABLE
LOBSEGMENT
CLUSTER
INDEX PARTITION




SEGMENT_TYPE
------------------
LOB PARTITION


12 rows selected.


2,我們先測試table,table partition,table SUBPARTITION


---table segment
SQL> create table t_non_partition(a int,b int);


Table created.


SQL> insert into t_non_partition values(1,1);


1 row created.


SQL> commit;


Commit complete.


SQL> set linesize 300
SQL> select segment_name,segment_type from user_segments where lower(segment_name)='t_non_partition';


SEGMENT_NAME SEGMENT_TYPE
--------------------------------------------------------------------------------- ------------------
T_NON_PARTITION TABLE


--table partition
SQL> create table t_partition(a int,b int) partition by range(a) (partition p1 values less than(10),partition p2 values less than(maxvalue));


Table created.


分割槽表即使不插入資料也會預設分配段空間,預設每個段大小為65536BYTE
SSQL> col segment_name for a20
SQL> select segment_name,segment_type,bytes from user_segments where lower(segment_name)='t_partition';


SEGMENT_NAME SEGMENT_TYPE BYTES
-------------------- ------------------ ----------
T_PARTITION TABLE PARTITION 65536
T_PARTITION TABLE PARTITION 65536






SQL> insert into t_partition values(1,1);


1 row created.


SQL> insert into t_partition values(11,1);


1 row created.


SQL> commit;


Commit complete.


SQL> select segment_name,segment_type,bytes from user_segments where lower(segment_name)='t_partition';


SEGMENT_NAME SEGMENT_TYPE BYTES
-------------------- ------------------ ----------
T_PARTITION TABLE PARTITION 65536
T_PARTITION TABLE PARTITION 65536




SQL> insert into t_partition select level,level from dual connect by level<=100000;


100000 rows created.


SQL> commit;


Commit complete.


可見table segment僅佔dba_segments 1條記錄,即僅分配一個segment,而table partition會根據分割槽表的分表個數,相應分配幾個段,同時在dba_segments也佔用相應個數的記錄
SQL> select owner,segment_name,segment_type,bytes from dba_segments where lower(segment_name)='t_partition';


OWNER SEGMENT_NAME SEGMENT_TYPE BYTES
------------------------------ -------------------- ------------------ ----------
SCOTT T_PARTITION TABLE PARTITION 65536
SCOTT T_PARTITION TABLE PARTITION 2097152


--table SUBPARTITION


2個分割槽,每個分割槽有3個子分割槽,共計6個子分割槽
SQL> create table t_subpart(a int,b int) partition by range(a) subpartition by hash(b) subpartitions 3(partition p1 values less than(10),partition p2 values less than(maxvalue));


Table created.


子分割槽表和分割槽表一樣,段的個表即子分割槽的個數,所以子分割槽表和分割槽表同理
SQL> col segment_name for a20
SQL> set linesize 300
SQL> select segment_name,segment_type,bytes from user_segments where lower(segment_name)='t_subpart';


SEGMENT_NAME         SEGMENT_TYPE            BYTES
-------------------- ------------------ ----------
T_SUBPART            TABLE SUBPARTITION      65536
T_SUBPART            TABLE SUBPARTITION      65536
T_SUBPART            TABLE SUBPARTITION      65536
T_SUBPART            TABLE SUBPARTITION      65536
T_SUBPART            TABLE SUBPARTITION      65536
T_SUBPART            TABLE SUBPARTITION      65536


6 rows selected.




2,繼續測試index,index parittion,index subpartition


--index
SQL> create table t_index(a int,b int);


Table created.


SQL> create index idx_t_index on t_index(a);


Index created.


SQL> select segment_name,segment_type,bytes from user_segments where lower(segment_name)='idx_t_index';


no rows selected


SQL> insert into t_index values(1,1);


1 row created.


SQL> commit;


Commit complete.


SQL> select segment_name,segment_type,bytes from user_segments where lower(segment_name)='idx_t_index';


SEGMENT_NAME         SEGMENT_TYPE            BYTES
-------------------- ------------------ ----------
IDX_T_INDEX          INDEX                   65536




--index partition


SQL> drop index IDX_T_INDEX;


Index dropped.


本地分割槽索引的基表必須要為分割槽表
SQL> create index idx_t_index_local on t_index(a) local;
create index idx_t_index_local on t_index(a) local
                                  *
ERROR at line 1:
ORA-14016: underlying table of a LOCAL partitioned index must be partitioned




全域性索引的基表可以不用分割槽


SQL> create index idx_t_index_local on t_index(a) global;


Index created.


但是全域性索引的段型別仍是index,和普通索引段型別一樣
SQL> select segment_name,segment_type,bytes from user_segments where lower(segment_name)='idx_t_index_local';


SEGMENT_NAME         SEGMENT_TYPE            BYTES
-------------------- ------------------ ----------
IDX_T_INDEX_LOCAL    INDEX                   65536




SQL> create table t_index(a int,b int) partition by range(a) (partition p1 values less than(10),partition p2 values less than(maxvalue));


Table created.


SQL> create index idx_t_index on t_index(a) local;


Index created.


可見index partition和table partition原理一樣
SQL> select segment_name,segment_type,bytes from user_segments where lower(segment_name)='idx_t_index';


SEGMENT_NAME         SEGMENT_TYPE            BYTES
-------------------- ------------------ ----------
IDX_T_INDEX          INDEX PARTITION         65536
IDX_T_INDEX          INDEX PARTITION         65536




index subpartition同理,不再測試




3,lob partition,lobsegment,lobindex,


--lobsegment
SQL> col segment_name for a50
SQL> select segment_name,segment_type from dba_segments where lower(segment_type) like '%lobsegment%' and rownum=1;


SEGMENT_NAME                                       SEGMENT_TYPE
-------------------------------------------------- ------------------
SYS_LOB0000000109C00005$$                          LOBSEGMENT




SQL> show user
USER is "SCOTT"
SQL> create table t_lob(a int,b blob);


Table created.




SQL> select segment_name,segment_type,bytes from user_segments where lower(segment_name)='t_lob';


no rows selected


SQL> col column_name for a50
SQL> col segment_name for a50
SQL> set linesize 300
SQL> select table_name,column_name,segment_name from user_lobs where lower(table_name)='t_lob';


TABLE_NAME                     COLUMN_NAME                                        SEGMENT_NAME
------------------------------ -------------------------------------------------- --------------------------------------------------
T_LOB                          B                                                  SYS_LOB0000082940C00002$$




SQL> insert into t_lob values(1,'1');


1 row created.


SQL> commit;


Commit complete.


可見表的lob列會分配一個獨立的段,且其段名和dba_lobs的段名相同,段型別為lobsegment
SQL> select segment_name,segment_type,bytes from user_segments where segment_name='SYS_LOB0000082940C00002$$';


SEGMENT_NAME                                       SEGMENT_TYPE            BYTES
-------------------------------------------------- ------------------ ----------
SYS_LOB0000082940C00002$$                          LOBSEGMENT              65536


--lob partition


SQL> drop table t_lob purge;


Table dropped.


SQL> create table t_lob(a int,b blob) partition by range(a) (partition p1 values less than(10),partition p2 values less than(maxvalue));


Table created.


可見lob partition和table partition一樣道理
SQL> select segment_name,segment_type,bytes from user_segments where lower(segment_type)='lob partition';


SEGMENT_NAME                                       SEGMENT_TYPE            BYTES
-------------------------------------------------- ------------------ ----------
SYS_LOB0000082943C00002$$                          LOB PARTITION           65536
SYS_LOB0000082943C00002$$                          LOB PARTITION           65536






---lobindex
SQL> drop table t_lob purge;


Table dropped.


SQL> create table t_lob(a int,b blob);


Table created.


SQL> set linesize 300
SQL> select segment_name,segment_type,bytes from user_segments where lower(segment_type) like '%lob%';


SEGMENT_NAME                                       SEGMENT_TYPE            BYTES
-------------------------------------------------- ------------------ ----------
SYS_IL0000082952C00002$$                           LOBINDEX                65536
SYS_LOB0000082952C00002$$                          LOBSEGMENT              65536




SQL> drop table t_lob purge;


Table dropped.


可見只要表包含lob列,ORACLE會自動建立LOB INDEX及LOB SEGMENT 2個型別的段,一個用於儲存LOB列資料的索引,另一個用於儲存真正的LOB資料


SQL> select segment_name,segment_type,bytes from user_segments where lower(segment_type) like '%lob%';


no rows selected


SQL> create table t_lob(a int,b blob);


Table created.


SQL> select segment_name,segment_type,bytes from user_segments where lower(segment_type) like '%lob%';


no rows selected


SQL> insert into t_lob values(1,'a');


1 row created.


SQL> commit;


Commit complete.


SQL> select segment_name,segment_type,bytes from user_segments where lower(segment_type) like '%lob%';


SEGMENT_NAME                                       SEGMENT_TYPE            BYTES
-------------------------------------------------- ------------------ ----------
SYS_IL0000082955C00002$$                           LOBINDEX                65536
SYS_LOB0000082955C00002$$                          LOBSEGMENT              65536


SQL> 




4,繼續研究type2 undo


SQL> select owner,segment_name,segment_type,bytes from dba_segments where lower(segment_type) like '%type2 undo%';


OWNER                          SEGMENT_NAME                                       SEGMENT_TYPE            BYTES
------------------------------ -------------------------------------------------- ------------------ ----------
SYS                            _SYSSMU1_3780397527$                               TYPE2 UNDO            3276800
SYS                            _SYSSMU2_2232571081$                               TYPE2 UNDO           15859712
SYS                            _SYSSMU3_2097677531$                               TYPE2 UNDO           15859712
SYS                            _SYSSMU4_1152005954$                               TYPE2 UNDO           14811136
SYS                            _SYSSMU5_1527469038$                               TYPE2 UNDO           14811136
SYS                            _SYSSMU6_2443381498$                               TYPE2 UNDO           14811136
SYS                            _SYSSMU7_3286610060$                               TYPE2 UNDO           15859712
SYS                            _SYSSMU8_2012382730$                               TYPE2 UNDO           16908288
SYS                            _SYSSMU9_1424341975$                               TYPE2 UNDO           15859712
SYS                            _SYSSMU10_3550978943$                              TYPE2 UNDO           15859712
SYS                            _SYSSMU11_3764057063$                              TYPE2 UNDO            2097152


OWNER                          SEGMENT_NAME                                       SEGMENT_TYPE            BYTES
------------------------------ -------------------------------------------------- ------------------ ----------
SYS                            _SYSSMU12_4237347689$                              TYPE2 UNDO            2097152
SYS                            _SYSSMU13_4009171218$                              TYPE2 UNDO            2097152
SYS                            _SYSSMU14_85406916$                                TYPE2 UNDO            2097152
SYS                            _SYSSMU15_19581870$                                TYPE2 UNDO            2097152
SYS                            _SYSSMU16_330215121$                               TYPE2 UNDO            2097152
SYS                            _SYSSMU17_2539421292$                              TYPE2 UNDO            2097152
SYS                            _SYSSMU18_2838524032$                              TYPE2 UNDO            2097152
SYS                            _SYSSMU19_2247644598$                              TYPE2 UNDO            2097152
SYS                            _SYSSMU20_3287519172$                              TYPE2 UNDO            2097152
SYS                            _SYSSMU21_979913864$                               TYPE2 UNDO            2097152
SYS                            _SYSSMU22_1258676675$                              TYPE2 UNDO            2097152


OWNER                          SEGMENT_NAME                                       SEGMENT_TYPE            BYTES
------------------------------ -------------------------------------------------- ------------------ ----------
SYS                            _SYSSMU23_432372269$                               TYPE2 UNDO            2097152
SYS                            _SYSSMU24_29215360$                                TYPE2 UNDO            2097152
SYS                            _SYSSMU25_1959401013$                              TYPE2 UNDO            2097152
SYS                            _SYSSMU26_1505353806$                              TYPE2 UNDO            2097152
SYS                            _SYSSMU27_4175236021$                              TYPE2 UNDO            2097152
SYS                            _SYSSMU28_2795037290$                              TYPE2 UNDO            2097152
SYS                            _SYSSMU29_2912783882$                              TYPE2 UNDO            2097152
SYS                            _SYSSMU30_3787905801$                              TYPE2 UNDO            2097152
SYS                            _SYSSMU31_2920750614$                              TYPE2 UNDO            2097152
SYS                            _SYSSMU32_571373598$                               TYPE2 UNDO            2097152
SYS                            _SYSSMU33_1927177067$                              TYPE2 UNDO            2097152


OWNER                          SEGMENT_NAME                                       SEGMENT_TYPE            BYTES
------------------------------ -------------------------------------------------- ------------------ ----------
SYS                            _SYSSMU34_1559179680$                              TYPE2 UNDO            2097152
SYS                            _SYSSMU35_291451185$                               TYPE2 UNDO            2097152
SYS                            _SYSSMU36_1109293922$                              TYPE2 UNDO            2097152
SYS                            _SYSSMU37_1481936203$                              TYPE2 UNDO            2097152
SYS                            _SYSSMU38_469291246$                               TYPE2 UNDO            2097152
SYS                            _SYSSMU39_1698885487$                              TYPE2 UNDO            2097152
SYS                            _SYSSMU40_773436029$                               TYPE2 UNDO            2097152
SYS                            _SYSSMU41_1986806182$                              TYPE2 UNDO            2097152
SYS                            _SYSSMU42_853024593$                               TYPE2 UNDO            2097152
SYS                            _SYSSMU43_3929672554$                              TYPE2 UNDO            2097152
SYS                            _SYSSMU44_1441154989$                              TYPE2 UNDO            2097152


OWNER                          SEGMENT_NAME                                       SEGMENT_TYPE            BYTES
------------------------------ -------------------------------------------------- ------------------ ----------
SYS                            _SYSSMU45_1152487835$                              TYPE2 UNDO            2097152
SYS                            _SYSSMU46_2885130413$                              TYPE2 UNDO            2097152
SYS                            _SYSSMU47_2402955442$                              TYPE2 UNDO            2097152
SYS                            _SYSSMU48_3478094676$                              TYPE2 UNDO            2097152
SYS                            _SYSSMU49_2073140607$                              TYPE2 UNDO            2097152


49 rows selected.


SQL> 


可見type 2 undo就是UNDO TABLESPACE回滾表空間的段
SQL> select segment_name,owner,segment_id from dba_rollback_segs;


SEGMENT_NAME                                       OWNER  SEGMENT_ID
-------------------------------------------------- ------ ----------
SYSTEM                                             SYS             0
_SYSSMU49_2073140607$                              PUBLIC         49
_SYSSMU48_3478094676$                              PUBLIC         48
_SYSSMU47_2402955442$                              PUBLIC         47
_SYSSMU46_2885130413$                              PUBLIC         46
_SYSSMU45_1152487835$                              PUBLIC         45
_SYSSMU44_1441154989$                              PUBLIC         44
_SYSSMU43_3929672554$                              PUBLIC         43
_SYSSMU42_853024593$                               PUBLIC         42
_SYSSMU41_1986806182$                              PUBLIC         41
_SYSSMU40_773436029$                               PUBLIC         40


SEGMENT_NAME                                       OWNER  SEGMENT_ID
-------------------------------------------------- ------ ----------
_SYSSMU39_1698885487$                              PUBLIC         39
_SYSSMU38_469291246$                               PUBLIC         38
_SYSSMU37_1481936203$                              PUBLIC         37
_SYSSMU36_1109293922$                              PUBLIC         36
_SYSSMU35_291451185$                               PUBLIC         35
_SYSSMU34_1559179680$                              PUBLIC         34
_SYSSMU33_1927177067$                              PUBLIC         33
_SYSSMU32_571373598$                               PUBLIC         32
_SYSSMU31_2920750614$                              PUBLIC         31
_SYSSMU30_3787905801$                              PUBLIC         30
_SYSSMU29_2912783882$                              PUBLIC         29


SEGMENT_NAME                                       OWNER  SEGMENT_ID
-------------------------------------------------- ------ ----------
_SYSSMU28_2795037290$                              PUBLIC         28
_SYSSMU27_4175236021$                              PUBLIC         27
_SYSSMU26_1505353806$                              PUBLIC         26
_SYSSMU25_1959401013$                              PUBLIC         25
_SYSSMU24_29215360$                                PUBLIC         24
_SYSSMU23_432372269$                               PUBLIC         23
_SYSSMU22_1258676675$                              PUBLIC         22
_SYSSMU21_979913864$                               PUBLIC         21
_SYSSMU20_3287519172$                              PUBLIC         20
_SYSSMU19_2247644598$                              PUBLIC         19
_SYSSMU18_2838524032$                              PUBLIC         18


SEGMENT_NAME                                       OWNER  SEGMENT_ID
-------------------------------------------------- ------ ----------
_SYSSMU17_2539421292$                              PUBLIC         17
_SYSSMU16_330215121$                               PUBLIC         16
_SYSSMU15_19581870$                                PUBLIC         15
_SYSSMU14_85406916$                                PUBLIC         14
_SYSSMU13_4009171218$                              PUBLIC         13
_SYSSMU12_4237347689$                              PUBLIC         12
_SYSSMU11_3764057063$                              PUBLIC         11
_SYSSMU10_3550978943$                              PUBLIC         10
_SYSSMU9_1424341975$                               PUBLIC          9
_SYSSMU8_2012382730$                               PUBLIC          8
_SYSSMU7_3286610060$                               PUBLIC          7


SEGMENT_NAME                                       OWNER  SEGMENT_ID
-------------------------------------------------- ------ ----------
_SYSSMU6_2443381498$                               PUBLIC          6
_SYSSMU5_1527469038$                               PUBLIC          5
_SYSSMU4_1152005954$                               PUBLIC          4
_SYSSMU3_2097677531$                               PUBLIC          3
_SYSSMU2_2232571081$                               PUBLIC          2
_SYSSMU1_3780397527$                               PUBLIC          1


50 rows selected.


SQL> 






5,我們繼續測試cluster


SQL> create cluster t_cluster(a int) size 512;


Cluster created.


SQL> create table t_cluster_table1(a int,b int) cluster t_cluster(a);


Table created.


SQL> select segment_name,segment_type,bytes from user_segments where lower(segment_type) like '%cluster%';


SEGMENT_NAME                                       SEGMENT_TYPE            BYTES
-------------------------------------------------- ------------------ ----------
T_CLUSTER                                          CLUSTER                 65536




SQL> select segment_name,segment_type,bytes from user_segments where lower(segment_name)='t_cluster_table1';


no rows selected




叢集表的表插入資料前,必須先為叢集建立索引
SQL> insert into t_cluster_table1 values(1,1);
insert into t_cluster_table1 values(1,1)
            *
ERROR at line 1:
ORA-02032: clustered tables cannot be used before the cluster index is built


為叢集建立索引
SQL> create index idx_cluster on cluster t_cluster;


Index created.


SQL> insert into t_cluster_table1 values(1,1);


1 row created.


SQL> commit;


Commit complete.


可見集表中的表不會儲存分配同表名的段


SQL> select segment_name,segment_type,bytes from user_segments where lower(segment_name)='t_cluster_table1';


no rows selected




6,我們最後研究下nested table


SQL> create type t_type as object(a int,b int);
  2  create table t_table_ref(a int,c t_type);
  3  /


Warning: Type created with compilation errors.


SQL> show error
Errors for TYPE T_TYPE:


LINE/COL ERROR
-------- -----------------------------------------------------------------
2/1      PLS-00103: Encountered the symbol "CREATE"
SQL> 




SQL> drop type t_type;


Type dropped.


建立自定義型別


SQL> create type t_type as object(a int);
  2  /


Type created.


普通表的表可以引用自定義型別


SQL> create table t_table_ref(aa int,b t_type);


Table created.


SQL> insert into t_table_ref values(1,t_type(1));


1 row created.


SQL> commit;


Commit complete.


可見普能表引用自定義型別,不會為其分配nested table


SQL> select segment_name,segment_type,bytes from user_segments where lower(segment_type) like '%nest%';


no rows selected




建立巢狀表自定義型別
SQL> create type t_nest_type is table of int;
  2  /


Type created.


建立一個表,其列引用上述建立的巢狀表自定義型別


SQL> create table t_nest_table(id int,val1 t_nest_type) nested table val1 store as other_tab;


Table created.




SQL> select segment_name,segment_type,bytes from user_segments where lower(segment_type) like '%nest%';


SEGMENT_NAME                                       SEGMENT_TYPE            BYTES
-------------------------------------------------- ------------------ ----------
OTHER_TAB                                          NESTED TABLE            65536




SQL> insert into t_nest_table values(1,t_nest_type(1));


1 row created.


SQL> commit;


Commit complete.


可見對於包含巢狀表型別的表,會為使用巢狀表型別的列分配一個nested table segment,為其表分配一個table segment
SQL> select segment_name,segment_type,bytes from user_segments where lower(segment_name)='t_nest_table';


SEGMENT_NAME                                       SEGMENT_TYPE            BYTES
-------------------------------------------------- ------------------ ----------
T_NEST_TABLE                                       TABLE                   65536

個人簡介


8年oracle從業經驗,具備豐富的oracle技能,目前在國內北京某專業oracle服務公司從事高階技術顧問。
服務過的客戶:
中國電信
中國移動
中國聯通
中國電通
國家電網
四川達州商業銀行
湖南老百姓大藥房
山西省公安廳
中國郵政
北京302醫院     
河北廊坊新奧集團公司

 專案經驗:
中國電信3G專案AAA系統資料庫部署及最佳化
      中國聯通4G資料庫效能分析與最佳化
中國聯通CRM資料庫效能最佳化
中國移動10086電商平臺資料庫部署及最佳化
湖南老百姓大藥房ERR資料庫sql最佳化專案
四川達州商業銀行TCBS核心業務系統資料庫模型設計和RAC部署及最佳化
四川達州商業銀行TCBS核心業務系統後端批處理儲存過程功能模組編寫及最佳化
北京高鐵訊號監控系統RAC資料庫部署及最佳化
河南宇通客車資料庫效能最佳化
中國電信電商平臺核心採購模組表模型設計及最佳化
中國郵政儲蓄系統資料庫效能最佳化及sql最佳化
北京302醫院資料庫遷移實施
河北廊坊新奧data guard部署及最佳化
山西公安廳身份證審計資料庫系統故障評估
國家電網上海災備專案4 node rac+adg 
       貴州移動crm及客服資料庫效能最佳化專案
       貴州移動crm及客服務資料庫sql稽核專案
       深圳穆迪軟體有限公司資料庫效能最佳化專案

聯絡方式:
手機:18201115468
qq   :   305076427
qq微博: wisdomone1
新浪微博:wisdomone9
qq群:275813900    
itpub部落格名稱:wisdomone1    http://blog.itpub.net/9240380/

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-1784542/,如需轉載,請註明出處,否則將追究法律責任。

相關文章