从dba_segments提取数据库最消耗空间的top10数据库对象或segments

结论:



   统计前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/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9240380/viewspace-1784542/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值