元芳曰:这种情况基本都成为了DBA的家常便饭,经常要去处理用户提交来的性能问题或者是工程人员提交上来的AWR报告,一般遇到这种情况,解决的方法有很多。
OLTP
(1)先要弄清楚数据库的类型是什么 OLTP 在线事务处理 or OLAP 在线分析系统,因为不同的数据库类型选择优化的方法也不同。例如 OLTP 强调系统的内存命中率,内存的效率决定数据库效率。
(2)如果用户的并发数很大可扩大内存的容量缓存更多的数据,还可以调整data buffer cache、shared pool、java pool、large pool的大小及PGA大小包括sort区hash区等。
(3)如果用户的在线请求数较多,可以尝试着进行SQL的变量绑定,缓解SQL的硬解析,当遇到成千上万的查询操作时,能够不经过解析过程直接使用缓存的执行计划,那效率可以提高n倍。因为硬解析会做2个分析。第一 语法分析:检查代码的语法是否正确。第二 语义分析:检查代码执行的对象是否存在及对执行对象的权限是否有。解析过程十分的耗费CPU资源。
(4)数据块的争用,是因为数据分配的不均匀造成的,可以使用hash算法平均打散到各个磁盘上来减少热块的产生
(5)还有很多系统性能间接的反应为数据库性能,例如 网络的延迟  主机的应用程序较多  没有采用中间件策略构建预处理缓冲池
OLAP
(6)如果是OLAP 在线分析系统的话,当一个用户找你来说查询一张报表很慢,你可以通过用户会话来找到查询的SQL语句,检查这条语句逻辑上效率如何,可以使用Hint方式来改变sql的执行计划,检查数据的访问方式,是走全表扫描还是走索引效率最高,调整SQL的执行计划,选择合适的索引
(7)因为SQL大多数就是集合的数学运算操作,SQL表的关联方式是不是最优化,哪种join最适合,这都是要考虑的范围
(8)当你手工测试完后,对表进行统计分析,看看优化器和你选的执行计划是不是相同的
(9)CBO模式的选择,对于需要快速响应用户的请求,可以设置成first_rows(优先把部分数据返回),对于用户响应不是很严格的业务,可以设置成all_rows(所有处理数据一次性返回)
(10)如果系统的整体开销不大,可以考虑并行技术
(11)对于OLAP系统最直接的提高数据库性能方法增加磁盘I/O和CPU吞吐量,如果硬件搞不了,可以采用数据库压缩技术,减少空间提高I/O
(12)随着数据量的增加,以前不是问题的问题也变成了问题,对于OLAP系统SQL的效率决定数据库效率

Leonarding
2012.11.20
天津&winter
分享技术~成就梦想
Blog:http://space.itpub.net/26686207
 

当一个有性能问题的数据库摆在你的面前,作为责任人,你的处理思路是什么?...相关推荐

  1. 性能优化之数据库优化

    原文出处:http://www.trinea.cn/android/database-performance/ 1.索引 简单的说,索引就像书本的目录,目录可以快速找到所在页数,数据库中索引可以帮助快 ...

  2. 一个SQL性能问题的优化探索(二)(r11笔记第38天)

    继续前几天的一个案例一个SQL性能问题的优化探索(一)(r11笔记第33天) 如下的SQL语句存在索引字段CARD_NO,但是执行的时候却走了全表扫描,因为这是一个核心表,数据量很大,导致数据库负载很 ...

  3. PolarFS :一个用于共享存储云数据库的超低延迟和容错分布式文件系统

    目录 1. 简介 2. 背景 3. 架构 4. I/O 执行模型 5. 一致性模型 6. FS中层的实现 7. 设计选择和经验教训 8. 价值评估 9. 相关工作 10. 结论 PolarFS : A ...

  4. 项目中记录影响性能的缓慢数据库查询

    如果程序性能随着时间推移不断降低,那很有可能是因为数据库查询变慢了,随着数据库规模的增长,这一情况还会变得更糟.优化数据库有时很简单,需要在程序和数据库之间加入缓存.大多数数据库查询语言都提供了exp ...

  5. TiFlash:并非另一个 T + 1 列存数据库

    摘要:TiFlash 是配合 TiDB 体系的列存引擎,它和 TiDB 无缝结合,在线 DDL.无缝扩容.自动容错等等方便运维的特点也在 TiFlash 中得到继承,此外,TiFlash 可以实时与行 ...

  6. oracle的优化适用于mysql吗_性能优化之数据库优化,适用于Sqlite、Mysql、Oracle、Sql server,详细介绍了索引和事务及部分针对Sqlite的优化...

    本文为性能优化的第一篇--数据库性能优化,原理适用于大部分数据库包括Sqlite.Mysql.Oracle.Sql server,详细介绍了索引(优缺点.分类.场景.规则)和事务,最后介绍了部分单独针 ...

  7. 【IT观察】作为一个DBA,如何选择数据库

    一句话对比三大数据库软件 这个世界上Oracle.SQL Server和MySQL三大数据库软件呈三足鼎立之势,三者之间互有优缺点.网上能查到的内容我不再赘述,我把三者的优缺点对比总结成了三行文字: ...

  8. Android 性能优化之数据库优化(一)

    Android性能优化系列汇总已完成,包括: Android 性能优化实例 Android 性能优化之数据库优化(一) Android 性能优化之布局优化 (二) Android 性能优化之Java( ...

  9. 作为一个DBA,如何选择数据库

    一句话对比三大数据库软件 这个世界上Oracle.SQL Server和MySQL三大数据库软件呈三足鼎立之势,三者之间互有优缺点.网上能查到的内容我不再赘述,我把三者的优缺点对比总结成了三行文字: ...

最新文章

  1. 几十万的词如何用每页500词分页展示_如何写出一份优秀的应届生简历?
  2. go不使用工具包将大写字符转成小写字符的方法
  3. 5加载stm32 keil_「keil」嵌入式STM32开发环境之Keil5的安装(附资源) - 金橙教程网
  4. loadruner11 socket脚本-10053错误
  5. [js] js源代码压缩都有哪些方法?它们的压缩原理分别是什么
  6. 《ASP.NET 本质论》源码下载
  7. 刚开始进入一个行业,最佳的方式不是创新
  8. VC6.0 Dialog 如何添加 WM_ERASEBACKGROUND 消息
  9. 【转】pom.xml详解
  10. eclipse的安装与环境配置
  11. 美观实用的BeautifulReport测试报告
  12. Excel求和怎么操作?如何运用sum函数进行求和
  13. Spark on Hive Hive on Spark傻傻分不清?
  14. [论文解读]Bayesian Generalized Kernel Inference for Terrain Traversability Mapping
  15. 24小时学会,从抓包到接口测试
  16. m73p黑苹果_M93P一次性拔草小主机,黑苹果,软路由。
  17. word公式编号及交叉引用技巧
  18. WACV 2021 论文大盘点-目标检测篇
  19. 如何实现英文翻译成中文?英文翻译成中文简单方法介绍
  20. 多阶图形解锁,可配置9点、16点、25点等等

热门文章

  1. Mysql索引底层实现
  2. GIS输出PDF为什么标注有问题
  3. C# Excel 导入
  4. cad绘制椭圆的方法有几种_CAD新手入门教学:如何绘制矩形?
  5. ai一个线段多个箭头_初学设计却分不清PS和AI?超详细的AI基础介绍包你一看即会!...
  6. 大数据分析中国冬季重度雾霾的成因(一)
  7. java模态_java – 如何在另一个模态JDialog之上创建一个模态的JDialog
  8. Ardino基础教程 19_舵机控制
  9. Ardino基础教程 18_驱动74HC595
  10. STM32 基础系列教程 35 - Lwip_sntp