搜索
首页数据库mysql教程 用示例说明表数据中出现热块&Latch的场景,并给出解决方案?

引言:Latch争用就是由于多个会话同一时间访问同一个数据块引起的,这也是我们常说的热块。解决方法:把记录打散到多个数据块中,减少多个会话同一时间频繁访问

引言:Latch争用就是由于多个会话同一时间访问同一个数据块引起的,这也是我们常说的热块。解决方法:把记录打散到多个数据块中,网站空间,减少多个会话同一时间频繁访问一个数据块概率,防止由于记录都集中在一个数据块里产生热块现象。下面我们用实验来说明热块是如何产生和解决的。

session:19  

LEO1@LEO1>select distinct sid from v$mystat;    大家先了解一下LEO1用户的SID是19

       SID

-----------------

        19

LEO1@LEO1>create table latch_table1 as select * from dba_objects;   创建latch_table1表

Table created.

LEO1@LEO1>select count(*) from latch_table1;     这个表中有71961条记录

  COUNT(*)

----------------

     71961

LEO1@LEO1>execute dbms_stats.gather_table_stats('LEO1','latch_table1');   我们对表做一个全面分析让优化器了解表数据是如何分布的。

PL/SQL proceduresuccessfully completed.

下面我们用dbms_rowid.rowid_block_number 函数来查出一个数据块上有多少条记录

dbms_rowid.rowid_block_number作用:函数返回输入ROWID对应的数据块编号

selectdbms_rowid.rowid_block_number(rowid), count(*) block_sum_rows from latch_table1 group bydbms_rowid.rowid_block_number(rowid) order by block_sum_rows ;

这里显示出每个数据块上有多少条记录,按记录数从大到小排列

DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)BLOCK_SUM_ROWS

--------------------------------------------------

                                 234             81

                                 391             81

                                 225             82

                                 259             82

                                 220             83

                                 233             83

                                 279             84

                                 274             85

                                 219             88

                                 275             89

                                 277             89

                                 276             90

                                 278             90

我们看到一个数据块中最多是90行记录

select'LATCH_TABLE1' , block_sum_rows , count(*) con_rows_sum_blocks from

(selectdbms_rowid.rowid_block_number(rowid), count(*) block_sum_rows from latch_table1 group bydbms_rowid.rowid_block_number(rowid) order by block_sum_rows)

group byblock_sum_rows order by con_rows_sum_blocks;

有一致记录数的数据块有多少个,举个例子好理解,上面我们看到276和278块上都用90条记录,现在我们想知道有90条记录的块一共有多少个我们用con_rows_sum_blocks列名表示(一致记录数的数据块总和),香港服务器租用,每个块上的记录数我们用block_sum_rows列名表示。

'LATCH_TABLE  BLOCK_SUM_ROWS  CON_ROWS_SUM_BLOCKS

-------------------------- ----------------------- -------------- -------------------

LATCH_TABLE1             85                   1

LATCH_TABLE1             54                   1

LATCH_TABLE1             84                   1

LATCH_TABLE1             88                   1

LATCH_TABLE1             25                   1

LATCH_TABLE1             63                   2

LATCH_TABLE1             90                   2

LATCH_TABLE1             83                   2

LATCH_TABLE1             82                   2

LATCH_TABLE1             89                   2

LATCH_TABLE1             64                   4

LATCH_TABLE1             81                  10

LATCH_TABLE1             80                  17

LATCH_TABLE1             65                  18

LATCH_TABLE1             79                  20

LATCH_TABLE1             74                  27

LATCH_TABLE1             73                  28

LATCH_TABLE1             77                  28

LATCH_TABLE1             72                  29

LATCH_TABLE1             78                  29

LATCH_TABLE1             75                  33

LATCH_TABLE1             76                  36

LATCH_TABLE1             71                  54

LATCH_TABLE1             66                  69

LATCH_TABLE1             70                  75

LATCH_TABLE1             69                 152

LATCH_TABLE1             67                 158

LATCH_TABLE1             68                 223

28 rows selected.

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
Python函数介绍:exec函数的介绍及示例Python函数介绍:exec函数的介绍及示例Nov 03, 2023 pm 02:09 PM

Python函数介绍:exec函数的介绍及示例引言:在Python中,exec是一种内置函数,它用于执行存储在字符串或文件中的Python代码。exec函数提供了一种动态执行代码的方式,使得程序可以在运行时根据需要生成、修改和执行代码。本文将介绍exec函数的使用方法,并给出一些实际的代码示例。exec函数的使用方法:exec函数的基本语法如下所示:exec

Python函数介绍:abs函数的用法和示例Python函数介绍:abs函数的用法和示例Nov 03, 2023 pm 12:05 PM

Python函数介绍:abs函数的用法和示例一、abs函数的用法介绍在Python中,abs函数是一个内置函数,用于计算给定数值的绝对值。它可以接受一个数字参数,并返回该数字的绝对值。abs函数的基本语法如下:abs(x)其中,x是要计算绝对值的数值参数,可以是整数或浮点数。二、abs函数的示例下面我们将通过一些具体的示例来展示abs函数的用法:示例1:计算

Python函数介绍:sorted函数的功能和示例Python函数介绍:sorted函数的功能和示例Nov 03, 2023 pm 02:47 PM

Python函数介绍:sorted函数的功能和示例Python是一门非常强大的编程语言,拥有丰富的内置函数和模块。在这个系列文章中,我们将逐一介绍Python常用的函数,并提供相应的示例来帮助读者更好地理解和应用这些函数。本篇文章将详细介绍sorted函数的功能和示例。sorted函数用于对可迭代对象进行排序,并返回排序后的新列表。可以用于对数字、字

PHP中endwhile关键字的作用和示例PHP中endwhile关键字的作用和示例Jun 28, 2023 pm 08:00 PM

PHP中endwhile关键字的作用和示例在PHP中,endwhile是一种控制结构,用来实现while循环。它的作用是让程序在满足指定条件的情况下,重复执行一段代码块,直到条件不再满足。endwhile的语法形式如下:while(condition)://循环体代码endwhile;在这个语法中,condition是一个逻辑表达式,当该表达

Python函数介绍:__import__函数的用法和示例Python函数介绍:__import__函数的用法和示例Nov 03, 2023 pm 06:15 PM

Python函数介绍:__import__函数的用法和示例Python作为一门高级编程语言,其强大的函数库以及函数的使用方法也是吸引越来越多开发者以及爱好者的原因之一。在Python中,内置的__import__函数是一个非常强大但比较少用的函数,该函数用于动态导入模块。它接收静态的模块名称并返回已导入的模块对象。Syntax:import(name[,

Python函数介绍:filter函数的作用和示例Python函数介绍:filter函数的作用和示例Nov 04, 2023 am 10:13 AM

Python函数介绍:filter函数的作用和示例Python是一种功能强大的编程语言,提供了许多内置的函数,其中之一就是filter函数。filter函数用于过滤列表中的元素,并返回满足指定条件的元素组成的新列表。在本文中,我们将介绍filter函数的作用,并提供一些示例来帮助读者理解其用法和潜力。filter函数的语法如下:filter(function

Python函数介绍:zip函数的介绍及示例Python函数介绍:zip函数的介绍及示例Nov 03, 2023 pm 02:02 PM

Python函数介绍:zip函数的介绍及示例Python是一种高级语言,它提供了许多有用的函数来帮助开发人员快速地编写程序。其中一个函数就是zip函数。Zip函数是Python中的内置函数之一,它可以接受一组可迭代对象(包括列表、元组、集合和字典等),并返回一个由这些可迭代对象中的元素按顺序成对组成的元组。Zip函数可以用于多种情况,例如:1.将两个列表的元

Python函数介绍:range函数的介绍及示例Python函数介绍:range函数的介绍及示例Nov 04, 2023 am 10:10 AM

Python函数介绍:range函数的介绍及示例Python是一种广泛应用于各种领域的高级编程语言,它具有简单易学的特点,并且有着丰富的内置函数库。其中,range函数是Python中常用的一个内置函数之一。本文将详细介绍range函数的功能以及使用方法,并通过实例来演示其具体的应用。range函数是用来生成一个整数序列的函数,它接受三个参数,分别是起始值(

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。