
数据库性能调优
文章平均质量分 86
dingdingfish
能将忙事成闲事 不薄今人爱古人
展开
-
使用 AWR 进行 Exadata 性能诊断 - 2018版
Oracle Exadata 旨在为 Oracle 数据库提供显著更好的性能、成本效益和可用性。Exadata 采用现代云架构,具有横向扩展高性能数据库服务器、具有最先进 PCI 闪存的横向扩展智能存储服务器以及超快 InfiniBand 内部结构。Exadata 中独特的软件算法在存储、计算和 InfiniBand 网络中实现数据库智能,以比其他平台更低的成本提供更高的性能和容量。Exadata 运行所有类型。原创 2024-12-03 22:09:54 · 875 阅读 · 0 评论 -
使用 AWR 进行 Exadata 性能诊断
本技术简介概述了如何将 Oracle AWR 功能与 Exadata 结合使用,从 Exadata 的角度(standpoint)监控和分析数据库性能特征。Oracle Database 10g 中引入的自动负载信息库 (AWR) 是 Oracle Database 使用最广泛的性能诊断工具。AWR 收集、处理和维护数据库性能统计数据,用于问题检测和自我调优。此数据收集过程定期执行,结果捕获到 AWR 快照中。原创 2024-11-18 23:13:14 · 1168 阅读 · 0 评论 -
Oracle Automatic Database Diagnostic Monitor (ADDM) 学习笔记
Oracle Automatic Database Diagnostic Monitor (ADDM) 学习笔记原创 2023-10-16 11:41:05 · 543 阅读 · 0 评论 -
Active Session History (ASH) 读书笔记
ASH(Active Session History)读书笔记原创 2023-10-14 09:01:07 · 378 阅读 · 0 评论 -
Oracle Redo Log 文件扩容
Oracle Redo Log 文件扩容原创 2023-05-19 20:37:53 · 919 阅读 · 0 评论 -
Oracle批量数据加载时的在线统计信息收集
Oracle批量数据加载时的在线统计信息收集原创 2023-04-25 15:38:49 · 510 阅读 · 0 评论 -
SQL调优指南笔记19:Influencing the Optimizer
本文为SQL Tuning Guide第19章“Influencing the Optimizer”的笔记。原创 2022-06-13 16:46:14 · 356 阅读 · 0 评论 -
SQL调优指南笔记18:Analyzing Statistics Using Optimizer Statistics Advisor
本文为SQL Tuning Guide第18章“Analyzing Statistics Using Optimizer Statistics Advisor”的笔记。原创 2022-06-12 18:25:40 · 412 阅读 · 0 评论 -
SQL调优指南笔记17:Importing and Exporting Optimizer Statistics
本文为SQL Tuning Guide第17章“Importing and Exporting Optimizer Statistics”的笔记。原创 2022-06-07 19:17:01 · 201 阅读 · 1 评论 -
SQL调优指南笔记16:Managing Historical Optimizer Statistics
本文为SQL Tuning Guide第16章“Managing Historical Optimizer Statistics”的笔记。原创 2022-06-07 18:23:16 · 285 阅读 · 0 评论 -
SQL调优指南笔记15:Controlling the Use of Optimizer Statistics
本文为SQL Tuning Guide第15章“Controlling the Use of Optimizer Statistics”的笔记。原创 2022-06-06 18:54:32 · 241 阅读 · 0 评论 -
SQL调优指南笔记14:Managing Extended Statistics
本文为SQL Tuning Guide第14章“Managing Extended Statistics”的笔记。原创 2022-06-06 17:17:19 · 269 阅读 · 0 评论 -
SQL调优指南笔记13:Gathering Optimizer Statistics
本文为SQL Tuning Guide第13章“Gathering Optimizer Statistics”的笔记。原创 2022-06-06 11:21:49 · 1028 阅读 · 0 评论 -
SQL调优指南笔记12:Configuring Options for Optimizer Statistics Gathering
本文为SQL Tuning Guide第12章“Configuring Options for Optimizer Statistics Gathering”的笔记。原创 2022-06-05 17:36:26 · 365 阅读 · 0 评论 -
SQL调优指南笔记11:Histograms
本文为SQL Tuning Guide第11章“Histograms”的笔记。原创 2022-06-05 12:56:00 · 802 阅读 · 0 评论 -
SQL调优指南笔记10:Optimizer Statistics Concepts
本文为SQL Tuning Guide第10章“Optimizer Statistics Concepts”的笔记。原创 2022-06-04 20:55:39 · 381 阅读 · 0 评论 -
SQL调优指南笔记9:Joins
本文为SQL Tuning Guide第9章“Join”的笔记。原创 2022-06-01 13:27:41 · 607 阅读 · 0 评论 -
SQL调优指南笔记8:Optimizer Access Paths
本文为SQL Tuning Guide第8章“优化访问路径”的笔记。access pathThe means by which the database retrieves data from a database. For example, a query using an index and a query using a full table scan use different access paths.数据库从数据库中检索数据的方法。 例如,使用索引的查询和使用全表扫描的查翻译 2022-05-27 15:32:02 · 401 阅读 · 0 评论 -
Oracle数据库中查询执行计划的权限
这里的执行计划是指游标中的实际执行计划。例如对于HR用户,需要赋予以下权限:grant SELECT_CATALOG_ROLE to HRgrant SELECT ANY DICTIONARY to HR否则会报错如下:Failed to access V$MYSTAT.Please obtain read catalog privilegefrom your database administrator:grant SELECT_CATALOG_ROLE to HRgrant SELE原创 2022-05-26 21:09:45 · 615 阅读 · 0 评论 -
SQL调优指南笔记6:Explaining and Displaying Execution Plans
本文为SQL Tuning Guide第6章“解释和显示执行计划”的笔记。了解如何解释SQL语句并显示其计划对于 SQL 调优至关重要。重要基本概念row source treeA collection of row sources produced by the row source generator. The row source tree for a SQL statement shows information such as table order, access methods,原创 2022-05-25 16:11:15 · 499 阅读 · 0 评论 -
“Oracle数据库并行执行”技术白皮书读书笔记
本文为白皮书Parallel Execution with Oracle Database(2019年2月20日版本)的读书笔记。简介数据快速增长,但业务仍要求数据的快速处理。并行执行是大规模数据处理的关键。并行执行使用多个进程来处理单个任务。数据库越能有效地利用所有硬件资源——多个 CPU、多个 IO 通道、多个存储单元、集群中的多个节点——处理查询和其他数据库操作的效率就越高。大型数据仓库应始终使用并行执行来获得良好的性能。 OLTP 应用程序中的特定操作(例如批处理操作)也可以从并行执行中显翻译 2022-05-25 09:36:51 · 933 阅读 · 0 评论 -
Oracle数据库的SQL ID
大小写,空格,注释会导致不同的SQL ID吗?答案是会。参考了Ask Tom中的2篇文章中的实验:Getting SQL ids for a a sqltextTwo identical queries with same parameter values have different execution plans …以下6个SQL语句:select /* this */* from dual;-- 注释不同select /* that */* from dual;-- 大写的FR原创 2022-05-18 11:28:48 · 2588 阅读 · 0 评论 -
读Martin Fowler的Yet Another Optimization Article
那天搜并行的文章时,恰好看到了这篇文章。是2002年的文章,只有2页,但其中一些观点还是有启发的。首先,性能很重要。一些性能的工作来自于架构设计,一些来自于优化。但仅从设计来看,很难就性能做出判断。 相反,您必须实际运行代码并测量性能。优化的步骤。首先,您需要一个分析器(Profiler) :一个可以分析您的程序在其各个部分中花费了多少时间的程序。软件性能也有2/8原则,即80%的时间消耗在20%的代码上。所以首要任务是找到那 20% 的代码。靠经验判断是不准的,此时需要使用到Profiler。然后需原创 2022-04-29 08:37:56 · 161 阅读 · 0 评论 -
Oracle全局临时表和私有临时表
GTT更早。GTT是8i就有的特性,PTT是18c才有的特性。GTT和PTT的数据都是会话私有的,而且会话结束后数据就没有了,但GTT的定义是全局的。事务提交时,GTT可以选择是否保留数据,PTT可以选择是否保留定义。GTT的表定义是所有会话共享的;PTT的表定义是会话私有的。关于GTT和PTT的实验原创 2021-12-26 09:46:55 · 4142 阅读 · 0 评论 -
Oracle Database 12c Attribute Cluster 和 Zone Map 高阶实验
本文为参照此教程的实验过程。此实验设计得非常好,感谢作者Nigel Bayliss和Veerabhadra Rao Putrevu。术语翻译Attribute Cluster:属性聚类Clustering:聚类Zone Map:区域地图Overview本教程介绍了 Oracle Database 12c 属性集群和区域映射,这些特性旨在显着减少查询的 IO,否则这些查询将执行全表扫描。时长约45分钟。属性聚类是一种表级指令,它根据某些列的内容对数据进行聚类,使其物理上接近。将逻辑上属于在原创 2021-12-23 15:02:52 · 645 阅读 · 0 评论 -
Oracle性能提升特性:Zone Map和Attribute Clustering
概念Zone Map和Attribute Clustering都是12.1.0.2的新特性。按照Oracle Database Features的说法,Zone Map的描述为:For full table access, zone maps allow I/O pruning of data based on the physical location of the data on disk, acting like an anti-index (索引的目的在于快速定位数据,而auti-index原创 2021-12-22 15:12:25 · 864 阅读 · 0 评论 -
Oracle数据库块之旅
本文是观看视频A tour of the Oracle Database Block的笔记。Hex Dump of block?termiology 101:Segment, Extent, Blocks经典的图示:21c时的图示:Extent是Chunk of data file。因此有以下三个属性:filestart positionlength按照文档的说法,Extent Size最小为64KB,随着对象变大,Extent Size相应变为1M,8M,64M。For s原创 2021-12-20 21:39:58 · 747 阅读 · 0 评论 -
Oracle数据库alert log的位置
下图来自Oracle官方文档:如果只关心文件内容而不是位置,用adrci即可:$ adrciADRCI: Release 19.0.0.0.0 - Production on Mon Dec 6 07:34:20 2021Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.ADR base = "/u01/app/oracle"adrci> show alertChoose t原创 2021-12-06 15:48:42 · 5304 阅读 · 0 评论 -
Oracle开发者中级第9课(读取一致性)实验
概述本实验参考DevGym中的实验指南。创建环境create table toys ( toy_name varchar2(30), price number(10, 2));insert into toys values ( 'Miss Snuggles', 9.99 );commit;数据为:select * from toys; TOY_NAME PRICE________________ ________Miss Snuggles原创 2021-11-23 11:05:15 · 628 阅读 · 0 评论 -
SQL调优指南笔记5:Query Transformations
本文为SQL Tuning Guide第5章“查询转换”的笔记。5.1 OR Expansion5.2 View Merging5.2.1 Query Blocks in View Merging5.2.2 Simple View Merging5.2.3 Complex View Merging5.3 Predicate Pushing5.4 Subquery Unnesting5.5 Query Rewrite with Materialized Views5.5.1 About Qu原创 2021-11-04 21:13:55 · 412 阅读 · 0 评论 -
SQL调优指南笔记4:Query Optimizer Concepts
本文为SQL Tuning Guide第4章“查询优化器概念”的笔记。4.1 Introduction to the Query Optimizer查询优化器(简称优化器)是内置的数据库软件,用于确定 SQL 语句访问请求数据的最有效方法。4.1.1 Purpose of the Query Optimizer优化器尝试为 SQL 语句生成最佳执行计划。优化器在所有考虑的候选计划中选择成本最低的计划。 优化器使用可用的统计数据来计算成本。 对于给定环境中的特定查询,成本计算考虑了查询执行的因素,例原创 2021-11-02 15:31:59 · 960 阅读 · 0 评论 -
SQL调优指南笔记3:SQL Processing
本文为SQL Tuning Guide第3章“SQL 处理”的笔记。3.1 About SQL ProcessingSQL 处理是对 SQL 语句的解析、优化、行源生成和执行。如下图:3.1.1 SQL ParsingSQL解析是SQL执行的第一阶段。解析阶段涉及将 SQL 语句的各个部分分离成其他例程可以处理的数据结构。 数据库在应用程序指示时解析语句,这意味着只有应用程序而不是数据库本身可以减少解析次数。当应用程序发出 SQL 语句时,该应用程序请求数据库解析调用(parse call)以准原创 2021-11-01 23:54:51 · 253 阅读 · 0 评论 -
SQL调优指南笔记2:SQL Performance Methodology
本文为SQL Tuning Guide第2章“SQL 性能方法论”的笔记。相关文档:Oracle Database 2 Day + Performance Tuning Guide2.1 Guidelines for Designing Your Application获得良好 SQL 性能的关键是在设计应用程序时已考虑到性能。2.1.1 Guideline for Data Modeling数据建模对于成功的应用程序设计很重要。数据建模必须紧密配合业务需求。 将主要精力用于那些受最频繁业务交易原创 2021-11-01 22:28:40 · 272 阅读 · 0 评论 -
SQL调优指南笔记1:Introduction to SQL Tuning
本文为SQL Tuning Guide第1章笔记。SQL 调优是尝试诊断和修复不符合性能标准的 SQL 语句。1.1 Changes in Oracle Database Release 21c for SQL Tuning Guide略1.2 About SQL TuningSQL 调优是提高 SQL 语句性能以满足特定、可衡量和可实现的目标的迭代过程。SQL 调优意味着修复已部署应用程序中的问题。 相比之下,应用程序设计在部署应用程序之前设定安全和性能目标。1.3 Purpose of S原创 2021-11-01 22:28:12 · 705 阅读 · 0 评论 -
获得Oracle开发者性能课证书
受益匪浅。成绩单:证书:原创 2021-10-30 23:06:46 · 170 阅读 · 0 评论 -
Oracle开发者性能课第9课(如何查找慢 SQL)实验
概述本实验参考DevGym中的实验指南。创建环境创建表和过程,其中我加了注释:create table schools ( school_id integer not null primary key, school_name varchar2(30) not null);create table students ( student_id integer not null primary key, parent_id integer not null, school_原创 2021-10-30 22:33:40 · 1356 阅读 · 0 评论 -
Oracle开发者性能课第8课(如何更快地进行插入、更新和删除)实验
概述本实验参考DevGym中的实验指南。创建环境创建表和过程,其中我加了注释:-- 创建PL/SQL包,用于计时。create or replace package timing_pkg as start_time pls_integer; time_taken pls_integer; procedure set_start_time; procedure calc_runtime ( operation varchar2 );原创 2021-10-30 20:48:42 · 903 阅读 · 2 评论 -
Oracle开发者性能课第7课(Join如何工作)实验
概述本实验参考DevGym中的实验指南。创建环境创建表card_deck ,就一张表:create table card_deck ( pk integer, val varchar2(10), suit varchar2(10), damaged varchar2(1), notes varchar2(200)) pctfree 75;insert into card_deck ( pk, val, suit, damaged, notes )原创 2021-10-30 14:51:09 · 331 阅读 · 0 评论 -
Oracle开发者性能课第6课(如何创建物化视图)实验
概述本实验参考DevGym中的实验指南。创建环境创建表bricks和索引:exec dbms_random.seed ( 0 );create table bricks ( brick_id not null constraint bricks_pk primary key, colour not null, shape not null, weight not null, insert_date not null, junk default lpa原创 2021-10-30 12:56:46 · 620 阅读 · 0 评论 -
Oracle开发者性能课第5课(为什么我的查询不使用索引)实验
概述本实验参考DevGym中的实验指南。创建环境创建表bricks和索引,及全局临时表bricks_temp,并在最后搜集统计信息:exec dbms_random.seed ( 0 );create table bricks ( brick_id not null constraint bricks_pk primary key, colour not null, shape not null, weight not null, insert_date not原创 2021-10-30 01:03:07 · 544 阅读 · 2 评论