一、数据库访问优化法则简介
要正确的优化SQL,我们需要快速定位能性的瓶颈点,也就是说快速找到我们SQL主要的开销在哪里?而大多数情况性能最慢的设备会是瓶颈点,如下载 时网络速度可能会是瓶颈点,本地复制文件时硬盘可能会是瓶颈点,为什么这些一般的工作我们能快速确认瓶颈点呢,因为我们对这些慢速设备的性能数据有一些基 本的认识,如网络带宽是2Mbps,硬盘是每分钟7200转等等。因此,为了快速找到SQL的性能瓶颈点,我们也需要了解我们计算机系统的硬件基本性能指 标,下图展示的当前主流计算机性能指标数据。
可以看到基本上每种设备都有两个指标:
延时(响应时间):表示硬件的突发处理能力;
带宽(吞吐量):代表硬件持续处理能力。
可以看出,计算机系统硬件性能从高到代依次为:
CPU——Cache(L1-L2-L3)——内存——SSD硬盘——网络——硬盘
由于SSD硬盘还处于快速发展阶段,所以本文的内容不涉及SSD相关应用系统。
根据数据库知识,我们可以列出每种硬件主要的工作内容:
CPU及内存:缓存数据访问、比较、排序、事务检测、SQL解析、函数或逻辑运算;
网络:结果数据传输、SQL请求、远程数据库访问(dblink);
硬盘:数据访问、数据写入、日志记录、大数据量排序、大表连接。
根据当前计算机硬件的基本性能指标及其在数据库中操作内容,可以整理出如下性能基本优化法则:
这个优化法则归纳为5个层次:
1、 减少数据访问(减少磁盘访问)
2、 返回更少数据(减少网络传输或磁盘访问)
3、 减少交互次数(减少网络传输)
4、 减少服务器CPU开销(减少CPU及内存开销)
5、 利用更多资源(增加资源)
由于每一层优化法则都是解决其对应硬件的性能问题,所以带来的性能提升比例也不一样。传统数据库系统设计是也是尽可能对低速设备提供优化方法,因此 针对低速设备问题的可优化手段也更多,优化成本也更低。我们任何一个SQL的性能优化都应该按这个规则由上到下来诊断问题并提出解决方案,而不应该首先想 到的是增加资源解决问题。
以下是每个优化法则层级对应优化效果及成本经验参考:
优化法则 |
性能提升效果 |
优化成本 |
减少数据访问 |
1~1000 |
低 |
返回更少数据 |
1~100 |
低 |
减少交互次数 |
1~20 |
低 |
减少服务器CPU开销 |
1~5 |
低 |
利用更多资源 |
@~10 |
高 |
接下来,我们针对5种优化法则列举常用的优化手段并结合实例分析。
二、Oracle数据库两个基本概念
数据块(Block)
数据块是数据库中数据在磁盘中存储的最小单位,也是一次IO访问的最小单位,一个数据块通常可以存储多条记录,数据块大小是DBA在创建数据库或表 空间时指定,可指定为2K、4K、8K、16K或32K字节。下图是一个Oracle数据库典型的物理结构,一个数据库可以包括多个数据文件,一个数据文 件内又包含多个数据块;
ROWID
ROWID是每条记录在数据库中的唯一标识,通过ROWID可以直接定位记录到对应的文件号及数据块位置。ROWID内容包括文件号、对像号、数据块号、记录槽号
相关推荐
面向程序员的数据库访问性能优化法则面向程序员的数据库访问性能优化法则面向程序员的数据库访问性能优化法则面向程序员的数据库访问性能优化法则
一、数据库访问性能优化法则简介 为正确的优化SQL,我们需要快速定位性能瓶颈点,也就是说快速找到我们SQL主要的开销在哪里。大多数情况性能最慢的设备会是瓶颈点,如下载时网络速度可能会是瓶颈点,本地复制文件时...
#### 数据库访问优化法则简介 要实现有效的数据库访问性能优化,首先需要明确优化的目标和方向。一般来说,性能瓶颈往往出现在系统中响应时间最长或处理能力最弱的部分。例如,在数据传输过程中,网络速度可能是瓶颈...
#### 一、百万级数据库优化策略概述 在处理大规模数据时,高效的数据库设计和优化显得尤为重要。本文档旨在提供一系列针对百万级别数据量的数据库优化建议,适用于从事程序开发的程序员及数据库管理员。通过遵循...
数据库访问性能优化是提高应用程序效率的关键环节,尤其对于数据库应用开发的程序员而言,理解并掌握这一技能至关重要。本文主要以Oracle数据库为例,虽然其他关系型数据库可以参考,但不适用于KV数据库、内存数据库...
金字塔法则认为,MySQL性能优化的关键在于建立一个多层次的优化体系,从硬件层、操作系统层、数据库层、应用程序层到架构层进行全面优化。这一法则的提出,为MySQL性能优化提供了一个系统化的方法论,为开发人员和...
#### 数据库访问优化法则简介 为了帮助程序员更好地理解和掌握数据库优化的知识,本文将从数据库访问的角度出发,提出一套优化法则,并结合实例进行讲解。 ### 一、数据库访问优化法则 #### 1. 减少数据访问 数据...
在数据库访问优化方面,索引的创建和使用至关重要。不恰当的索引可能增加数据操作的负担,但正确的索引能显著提升查询速度。索引就像是数据表的目录,允许快速定位数据。创建多个索引可以针对不同的查询模式提供加速...
用户在不同地理位置可以访问存储在不同地点的数据,而且不同的数据分布方式决定了不同的数据库设计和优化策略。 分布式数据库查询优化的基本方法主要包括查询转移和查询映射: 1. 查询转移是指在分布式数据库中,...
#### 三、数据库访问性能优化法则 数据库访问性能优化可以从多个层面进行: 1. **减少数据访问**:这是优化中最基础的部分,意味着尽量减少从硬盘读取数据的需求。硬盘是访问速度较慢的设备之一,因此减少对其的...
2021年09月16日
### 基于成本的Oracle优化法则 #### 成本的概念 在探讨SQL语句的成本时,需要明确“成本”的双层含义。一方面,成本指的是由解释计划(如`explain plan`)工具引起的执行次数;另一方面,则是执行SQL语句过程中...
12. **安全性设计**:设置权限控制、审计日志、加密存储等措施,保护数据库免受恶意攻击和未经授权的访问。 13. **云数据库设计**:在云计算环境中,要考虑弹性伸缩、高可用性和多租户架构等因素,以适应云环境的...