如何提高ORACLE数据库的查询统计速度

如何提高ORACLE数据库的查询统计速度,第1张

大型数据库系统中往往要用到查询统计 但是对于数据量大的系统 用户在进行复杂的查询统计时往往感到速度很慢 不能满足应用要求 这就要求我们在设计数据库系统时进行合理设置 提高查询统计的速度 本文结合笔者的项目开发经验 阐述具体的设置方法

以oracle 数据库系统为例 我们在开发大型oracle数据库系统时结合项目的特点 本着安全 高效的原则对数据库进行了一些物理设计 从而大大提高了数据库的查询统计速度 总结为如下几点

)扩大数据表空间到 M 用于存放本系统的数据

)段盘区的初始大小为 K 增长大小为 K 增长幅度为

)用户临时空间增大 M

)系统临时表空间和回滚段表空间增大 M 并且新建 个回滚段

)需要经常联结查询 而且数据量又大的库存表 名录表 收发料表放在一簇内

)提供定时备份 备份文件放在另外的机器上

设置数据表空间的SQL语句如下

CREATE TABLESPACE WXGL_DATA  DATAFILE  WXGL_DATA ORA  SIZE  M ONLINE

增加系统临时表空间和回滚段表空间的SQL语句如下

ALTER TABLESPACE TEMPORARY_DATA ADD DATAFILE  TMP ORCL ORA  SIZE  MALTER TABLESPACE ROLLBACK_DATA ADD DATAFILE  RBS ORCL ORA  SIZE  M

将数据空间设置在指定的数据文件的SQL语句如下

CREATE USER ZBGL IDENTIFIED BY ZBGLGRANT DBA TO ZBGLALTER USER ZBGL DEFAULT TABLESPACE WXGL_DATA  TEMPORARY TABLESPACE TEMPORARY_DATA   设置五个回滚段的SQL语句如下 SELECT SEGMENT_NAME FROM DBA_ROLLBACK_SEGS WHERE INITIAL_EXTENT <   AND UPPPER(OWNER) =  PUBLIC SELECT UPPER(STATUS) FROM DBA_ROLLBACK_SEGS WHERE UPPER(SEGMENT_NAME) =  ALTER ROLLBACK SEGMENT RB  OFFLINEALTER ROLLBACK SEGMENT RB  OFFLINEALTER ROLLBACK SEGMENT RB  OFFLINEALTER ROLLBACK SEGMENT RB  OFFLINEALTER ROLLBACK SEGMENT RB  OFFLINEDROP ROLLBACK SEGMENT RB DROP ROLLBACK SEGMENT RB

DROP ROLLBACK SEGMENT RB DROP ROLLBACK SEGMENT RB DROP ROLLBACK SEGMENT RB CREATE PUBLIC ROLLBACK SEGMENT RB  TABLESPACE ROLLBACK_DATA STORAGE (INITIAL   NEXT   MAXEXTENTS  )CREATE PUBLIC ROLLBACK SEGMENT RB  TABLESPACE ROLLBACK_DATA STORAGE (INITIAL   NEXT   MAXEXTENTS  )CREATE PUBLIC ROLLBACK SEGMENT RB  TABLESPACE ROLLBACK_DATA STORAGE (INITIAL   NEXT   MAXEXTENTS  )CREATE PUBLIC ROLLBACK SEGMENT RB  TABLESPACE ROLLBACK_DATA STORAGE (INITIAL   NEXT   MAXEXTENTS  )CREATE PUBLIC ROLLBACK SEGMENT RB  TABLESPACE ROLLBACK_DATA STORAGE (INITIAL   NEXT   MAXEXTENTS  )ALTER ROLLBACK SEGMENT RB  ONLINEALTER ROLLBACK SEGMENT RB  ONLINEALTER ROLLBACK SEGMENT RB  ONLINEALTER ROLLBACK SEGMENT RB  ONLINEALTER ROLLBACK SEGMENT RB  ONLINEMIT

将数据量大的库存表等放在一簇内的SQL语句如下

lishixinzhi/Article/program/Oracle/201311/18984

查询慢是和表结构,语句,系统等相关的

建索引等方法都可以改善表结构,

另外如果返回数据量很大,当然会慢,所以你尽量查询相对有用的数据

再就是查询语句了

比如用in查询没有jion查询快,还有

between

改成

>

<会快

再还有,用子查询也会慢很多,

如果是一些很复杂的查询,可以改用存储过程会好点,有时用临时表会慢但,从海量数据中查询取数进行子查询又不如用临时表快,不同的问题用不同的解决方法,看你要哪种了,单看你的问题无法直接判断。

不过,优化查询句是关键的了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10829787.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存