大型数据库系统中往往要用到查询统计但是对于数据量大的系统用户在进行复杂的查询统计时往往感到速度很慢不能满足应用要求这就要求我们在设计数据库系统时进行合理设置提高查询统计的速度本文结合笔者的项目开发经验阐述具体的设置方法
以oracle数据库系统为例我们在开发大型oracle数据库系统时结合项目的特点本着安全高效的原则对数据库进行了一些物理设计从而大大提高了数据库的查询统计速度总结为如下几点
)扩大数据表空间到M用于存放本系统的数据;
)段盘区的初始大小为K增长大小为K增长幅度为;
)用户临时空间增大M;
)系统临时表空间和回滚段表空间增大M并且新建个回滚段;
)需要经常联结查询而且数据量又大的库存表名录表收发料表放在一簇内;
)提供定时备份备份文件放在另外的机器上
设置数据表空间的SQL语句如下
CREATETABLESPACEWXGL_DATADATAFILEWXGL_DATAORASIZEMONLINE;
增加系统临时表空间和回滚段表空间的SQL语句如下
ALTERTABLESPACETEMPORARY_DATAADDDATAFILETMPORCLORASIZEM;
ALTERTABLESPACEROLLBACK_DATAADDDATAFILERBSORCLORASIZEM;
将数据空间设置在指定的数据文件的SQL语句如下
CREATEUSERZBGLIDENTIFIEDBYZBGL;
GRANTDBATOZBGL;
ALTERUSERZBGLDEFAULTTABLESPACEWXGL_DATATEMPORARYTABLESPACETEMPORARY_DATA;设置五个回滚段的SQL语句如下
SELECTSEGMENT_NAMEFROMDBA_ROLLBACK_SEGSWHEREINITIAL_EXTENT<AND
UPPPER(OWNER)=PUBLIC;
SELECTUPPER(STATUS)FROMDBA_ROLLBACK_SEGSWHEREUPPER(SEGMENT_NAME)=
ALTERROLLBACKSEGMENTRBOFFLINE;
ALTERROLLBACKSEGMENTRBOFFLINE;
ALTERROLLBACKSEGMENTRBOFFLINE;
ALTERROLLBACKSEGMENTRBOFFLINE;
ALTERROLLBACKSEGMENTRBOFFLINE;
DROPROLLBACKSEGMENTRB;
DROPROLLBACKSEGMENTRB;
DROPROLLBACKSEGMENTRB;
DROPROLLBACKSEGMENTRB;
DROPROLLBACKSEGMENTRB;
CREATEPUBLICROLLBACKSEGMENTRBTABLESPACEROLLBACK_DATA
STORAGE(INITIALNEXTMAXEXTENTS);
CREATEPUBLICROLLBACKSEGMENTRBTABLESPACEROLLBACK_DATA
STORAGE(INITIALNEXTMAXEXTENTS);
CREATEPUBLICROLLBACKSEGMENTRBTABLESPACEROLLBACK_DATA
STORAGE(INITIALNEXTMAXEXTENTS);
CREATEPUBLICROLLBACKSEGMENTRBTABLESPACEROLLBACK_DATA
STORAGE(INITIALNEXTMAXEXTENTS);
CREATEPUBLICROLLBACKSEGMENTRBTABLESPACEROLLBACK_DATA
STORAGE(INITIALNEXTMAXEXTENTS);
ALTERROLLBACKSEGMENTRBONLINE;
ALTERROLLBACKSEGMENTRBONLINE;
ALTERROLLBACKSEGMENTRBONLINE;
ALTERROLLBACKSEGMENTRBONLINE;
ALTERROLLBACKSEGMENTRBONLINE;
COMMIT;
将数据量大的库存表等放在一簇内的SQL语句如下
KCB=CREATETABLEQC_KCB(
+CKNMNUMBER()
+QCNMNUMBER()
+CKKCNUMBER()
+SNCKKCNUMBER()
+LDJNUMBER()
+BZVARCHAR()
+PRIMARYKEY(CKNMQCNM))
+TABLESPACEWXGL_DATA;(大数据量的库存表等放在WXGL_DATA)
QCFL=CREATETABLEQC_QCFL
+(FLBHNUMBER()PRIMARYKEY
+FLMCVARCHAR()
+)
+TABLESPACEWXGL_DATA;(其他表放在WXGL_DATA