検索
ホームページデータベース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 までご連絡ください。
MySQL:初心者が習得するための必須スキルMySQL:初心者が習得するための必須スキルApr 18, 2025 am 12:24 AM

MySQLは、初心者がデータベーススキルを学ぶのに適しています。 1.MySQLサーバーとクライアントツールをインストールします。 2。selectなどの基本的なSQLクエリを理解します。 3。マスターデータ操作:テーブルを作成し、データを挿入、更新、削除します。 4.高度なスキルを学ぶ:サブクエリとウィンドウの関数。 5。デバッグと最適化:構文を確認し、インデックスを使用し、選択*を避け、制限を使用します。

MySQL:構造化データとリレーショナルデータベースMySQL:構造化データとリレーショナルデータベースApr 18, 2025 am 12:22 AM

MySQLは、テーブル構造とSQLクエリを介して構造化されたデータを効率的に管理し、外部キーを介してテーブル間関係を実装します。 1.テーブルを作成するときにデータ形式と入力を定義します。 2。外部キーを使用して、テーブル間の関係を確立します。 3。インデックス作成とクエリの最適化により、パフォーマンスを改善します。 4.データベースを定期的にバックアップおよび監視して、データのセキュリティとパフォーマンスの最適化を確保します。

MySQL:説明されている主要な機能と機能MySQL:説明されている主要な機能と機能Apr 18, 2025 am 12:17 AM

MySQLは、Web開発で広く使用されているオープンソースリレーショナルデータベース管理システムです。その重要な機能には、次のものが含まれます。1。さまざまなシナリオに適したInnodbやMyisamなどの複数のストレージエンジンをサポートします。 2。ロードバランスとデータバックアップを容易にするために、マスタースレーブレプリケーション機能を提供します。 3.クエリの最適化とインデックスの使用により、クエリ効率を改善します。

SQLの目的:MySQLデータベースとの対話SQLの目的:MySQLデータベースとの対話Apr 18, 2025 am 12:12 AM

SQLは、MySQLデータベースと対話して、データの追加、削除、変更、検査、データベース設計を実現するために使用されます。 1)SQLは、ステートメントの選択、挿入、更新、削除を介してデータ操作を実行します。 2)データベースの設計と管理に作成、変更、ドロップステートメントを使用します。 3)複雑なクエリとデータ分析は、ビジネス上の意思決定効率を改善するためにSQLを通じて実装されます。

初心者向けのMySQL:データベース管理を開始します初心者向けのMySQL:データベース管理を開始しますApr 18, 2025 am 12:10 AM

MySQLの基本操作には、データベース、テーブルの作成、およびSQLを使用してデータのCRUD操作を実行することが含まれます。 1.データベースの作成:createdatabasemy_first_db; 2。テーブルの作成:createTableBooks(idintauto_incrementprimarykey、titlevarchary(100)notnull、authorvarchar(100)notnull、published_yearint); 3.データの挿入:InsertIntoBooks(タイトル、著者、公開_year)VA

MySQLの役割:WebアプリケーションのデータベースMySQLの役割:WebアプリケーションのデータベースApr 17, 2025 am 12:23 AM

WebアプリケーションにおけるMySQLの主な役割は、データを保存および管理することです。 1.MYSQLは、ユーザー情報、製品カタログ、トランザクションレコード、その他のデータを効率的に処理します。 2。SQLクエリを介して、開発者はデータベースから情報を抽出して動的なコンテンツを生成できます。 3.MYSQLは、クライアントサーバーモデルに基づいて機能し、許容可能なクエリ速度を確保します。

MySQL:最初のデータベースを構築しますMySQL:最初のデータベースを構築しますApr 17, 2025 am 12:22 AM

MySQLデータベースを構築する手順には次のものがあります。1。データベースとテーブルの作成、2。データの挿入、および3。クエリを実行します。まず、createdAtabaseおよびcreateTableステートメントを使用してデータベースとテーブルを作成し、InsertINTOステートメントを使用してデータを挿入し、最後にSelectステートメントを使用してデータを照会します。

MySQL:データストレージに対する初心者向けのアプローチMySQL:データストレージに対する初心者向けのアプローチApr 17, 2025 am 12:21 AM

MySQLは、使いやすく強力であるため、初心者に適しています。 1.MYSQLはリレーショナルデータベースであり、CRUD操作にSQLを使用します。 2。インストールは簡単で、ルートユーザーのパスワードを構成する必要があります。 3.挿入、更新、削除、および選択してデータ操作を実行します。 4. Orderby、Where and Joinは複雑なクエリに使用できます。 5.デバッグでは、構文をチェックし、説明を使用してクエリを分析する必要があります。 6.最適化の提案には、インデックスの使用、適切なデータ型の選択、優れたプログラミング習慣が含まれます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン