扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
任何机器安装Oracle都要把服务设置为:手动
创新互联公司云计算的互联网服务提供商,拥有超过13年的服务器租用、成都移动机房托管、云服务器、虚拟主机、网站系统开发经验,已先后获得国家工业和信息化部颁发的互联网数据中心业务许可证。专业提供云主机、虚拟主机、空间域名、VPS主机、云服务器、香港云服务器、免备案服务器等。
也就是需要开启Oracle时才手动启动,而不是随即自动启动
对于XP来说
大概占用250MB内存
只要有1G内存完全可以运行
也就是说你可以这么做
可以登录SYS用户修改Oracle的SGA等相关参数,降低内存占用,如下:
按Window键和R键,输入SQLPLUS,输入 sys as sysdba,回车,接着回车。
SQLalter system set sga_max_size = 1024M scope=spfile;
SQLalter system set sga_target=1024M scope=spfile;
SQLalter system set pga_aggregate_size=256M scope=spfile;
SQLshutdown immediate
SQLstartup
1、删除无用文件或数据,腾空间。
2、将空间紧张的数据移到其他空闲空间。
3、增加新存储空间。
这个没办法处理优化,只能是提高电脑配置,或者是换其他版本的oracle,建议使用10g。
解释:oracle运行程序本身就比较占内存,并且要启动三个实例才可以运行,所以建议可以更换个大的内存条(最少4G),安装64位系统。
备注:建议不用oracle的情况下可以把oracle的进程都停掉,减少内存占用。
问题分析:
一般cpu占用效高都是排序、sql解析和全表扫描,这里首先需要找出占用cpu最高的sql,然后查看他的执行计划,比如:看执行计划是走索引还是全表扫描(刚开始查看top发现占用同样多的CPU的进程很多,还以为是oracle 的bug, 后来发现不是)。
处理过程:
1, 根据操作系统进程查找Oracle数据库中占用最多CPU的SQL
使用Linux系统 "top命令-P "查出占用cpu最高的进程PID
操作如下:在sqlplus中执行如下sql:
SQL
SELECT
sql_text
FROM v$sqltext a
WHERE (a.hash_value, a.address) IN
(SELECT DECODE(sql_hash_value, 0, prev_hash_value, sql_hash_value),
DECODE(sql_hash_value, 0, prev_sql_addr, sql_address)
FROM v$session b
WHERE b.paddr =
(SELECT addr FROM v$process c WHERE c.spid = 'pid'))
ORDER BY piece ASC
其中pid 是使用top 查看系统中进程占用CPU极高的PID
找到SQL语句进行相应的调整优化
2,分析找到的sql语句,如查看sql执行计划。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流