Oracle 系统常见错误


p580  文平

常见问题一:昂贵的数据库连接开销
    在应用开发中,客户端为了某种数据库操作而进行某种数据库连接和断开的操作。这是2000年前后动态网页应用类型常见的错误。在这种应用中,每当一个用户单击一个网页,如果这个网页嵌入了数据库操作,则该网页要进行一次或若干次的数据库连接和断开。当前中间件技术模型已经成熟,中间件系统包含着对数据库连接池的支持。网页连接造成的数据库连接和断开操作已经很少见了。
   在客户/服务器结构的应用中,应用窗口界面上也不建议放置数据库连接脚本,而是在应用启动期间之间连接数据库即可。

 


常见问题二:SQL不能重用和共享池低效
   在SQL开发中不注意语法及查询结构的一直,将导致SQL在执行过程中被不断地解析,耗费系统资源。例如,查询条件中直接引用数值,而非绑定变量。这在运行环境下将意味着不同的SQL。虽然其含义一致,但Oracle仍然会将其解析为不同的SQL。Oracle建议使用绑定变量的方法进行游标的重用。

 

 

常见问题三:不良SQL语句
   不良SQL是指那些耗费了大量时间、大量系统资源的SQL语句。例如运行时间超过9小时的报表或者是一个耗时3分钟的联机查询。这些“耗费巨大”的SQL如果能得到有效调整,其优化贡献率必然可圈可点。Oracle 10gR2中ADDM(自动数据库诊断监视器)可以用来识别高消耗SQL,以及使用SQL顾问工具进行优化。

 

常见问题四:使用“非常用的初始化参数”
   这可能是最常见的错误了:用户使用了大量自定义参数,并期望某个“神秘”参数会给系统带来质的飞跃。这个误区来源于用户对Oracle数据库系统参数的不理解。实际上我们应该相信这样一点:默认安装的数据库往往适应于大多数应用情况,其配置可能就是最好的。

 

常见问题五:数据库I/O不均衡

数据库在AIX进行物理实施时,在规划数据存储方面应考虑数据存放均衡及I/O均衡问题。指导原则是I/O操作在存储子系统带宽上的均衡。很多系统按照磁盘或者存储逻辑单元(LUN)存储数据,而并非带宽的均衡,因此整个存储子系统不能形成I/O均衡,导致系统I/O缓慢。

 

常见问题六:重做日志设置问题
数据库的日志不能太小,也不能太少,否则小的重做日志会造成系统检查点频繁产生,对数据缓存和存储子系统造成I/O压力。如果重做日志组较少,则有可能形成因归档问题导致的日志切换等待。


常见问题七:大表的全表扫描
达标的全表扫描代价极高,其一是因为达标本身的数据量问题,其次是该操作调用的系统资源问题。这个问题的产生根源是应用设计之初的表设计没有考虑数据分割,或者表上索引设计不匹配,最后可能就是SQL写法拙笨。

 

常见问题八:部署和升级迁移错误
在许多情况下,数据库对象并未完全成功地从老系统中迁移过来,这是也可能造成系统资源使用异常的问题。例如,表的统计数据有误,亦或是表的索引不可用。这些问题产生时,正常的SQL执行会出现问题。在这种情况下,重新迁移、重新统计也许能解决问题。

 

你可能感兴趣的:(oracle,sql,数据库,中间件,数据库连接池,存储)