亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

輕松解決IBM DB2數據庫定位鎖等待問題

2024-07-21 02:44:00
字體:
來源:轉載
供稿:網友
在應用中,我們經常會碰到sql執行很慢,但是數據庫cpu和內存使用率又不高的情況,類似的問題基本上由于鎖,排序等原因造成,本文主要描述如何去定位鎖等待問題,誰在鎖等待?等待誰持有的鎖?鎖在那個表?

一、測試準備

1、先在session1執行如下操作,創建測試表

#db2 connect to eos

#export DB2OPTIONS=+C

#db2 "create table tacy_test (a int not null PRimary key,b varchar(10))"

#db2 "insert into tacy_test values(1,'a')"

#db2 "insert into tacy_test values(2,'a')"

#db2 "insert into tacy_test values(3,'a')"

#db2 "insert into tacy_test values(4,'a')"

#db2 commit

2、在session2執行如下操作

#db2 connect to eos

#export DB2OPTIONS=+C

二、產生一個lock wait

在session1做一個表更新:

#db2 "update tacy_test set b='b' where a=4"

sql執行成功

在session2做同樣更新操作:

#db2 "update tacy_test set b='c' where a=4"

進程被掛起等待

三、定位鎖等待

1、先來看看應用的情況:

#db2pd -db eos -applications

Database Partition 0 -- Database EOS -- Active -- Up 0 days 07:37:37

Applications:

Address AppHandl [nod-index] NumAgents CoorPid Status C-AnchID C-StmtUID L-AnchID L-StmtUID Appid

0x10140040 8 [000-00008] 1 8425 Lock-wait 80 2 66 1 *LOCAL.db2inst1.071124043739

0x100CE540 7 [000-00007] 1 8358 UOW-Waiting 0 0 80 2 *LOCAL.db2inst1.071124043708

可以看到有一個應用的狀態處于Lock-wait

2、現在我們來看看應用在等什么

#db2pd -db eos -locks showlock wait

Database Partition 0 -- Database EOS -- Active -- Up 0 days 07:42:56

Locks:

Address TranHdl Lockname Type Mode Sts Owner Dur HldCnt Att Rlse

0x2C8E0760 3 02001806078066020000000052 Row ..X W 2 1 0 0 0x0 TbspaceID 2 TableID 1560 RecordID 0x2668007

鎖的類型為Row(行鎖),X鎖(排他鎖),下面是我們最關心的鎖的位置

TbspaceID 2 TableID 1560 RecordID 0x2668007

其中TbspaceID為表空間ID,TableID為表的ID,RecordID代表具體位置,全部應該是0x0266807,其中前面三個字節為page number,為0x02668,后面一個字節代表solt identifier,為0x07

3、找到相應的表

#db2 "select tbspace,tabschema,tabname,tableid,tbspaceid from syscat.tables where tbspaceid=2 and tableid=1560"

TBSPACE TABSCHEMA TABNAME TABLEID TBSPACEID

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

USERSPACE1 DB2INST1 TACY_TEST 1560 2

1 record(s) selected.

4、根據RecordID找到鎖在哪行

db2提供了一個強大的數據分析工具db2dart,可以dump出相應的page數據

#db2dart eos /dd /tsi 2 /oi 1560 /ps 157312p /np 1 /v y

Warning: The database state is not consistent.

Warning: Reorg rows MAY be due to the inconsistent state of the database.

DB2DART Processing completed with warning(s)!

Complete DB2DART report found in:

/home/db2inst1/sqllib/db2dump/DART0000/EOS.RPT

其中tsi為表空間id(2),oi為表id(1560),ps為page number(0x0266807),需要轉換為十進制,在結尾必須加p,np代表你要獲取的頁數,v為是否詳細輸出

現在我們來看看EOS.RPT

______________________________________________________________________________

_______ DART _______

D a t a b a s e A n a l y s i s a n d R e p o r t i n g T o o l

IBM DB2 6000

______________________________________________________________________________

DART (V8.1.0) Report:

2007-11-24-20.59.51.355893

Database Name: EOS

Report name: EOS.RPT

Old report back-up: EOS.BAK

Database Subdirectory: /opt/db2/db2inst1/NODE0000/SQL00001

Operational Mode: Database Inspection Only (INSPECT)

______________________________________________________________________________

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

Action option: DD

Table-object-ID: 1560; Tablespace-ID: 2; First-page: 157312p; Number-pages: 1; Verbose: y

Warning: The database state is not consistent.

Warning: Reorg rows MAY be due to the inconsistent state of the database.

Connecting to Buffer Pool Services...

Table object report phase start.

Dump format is verbose.

______________________________________

Page 0 of object 1560 from table space 2.

BPS Page Header:

Page Data Offset = 48

Page Data Length = 4048

Page LSN = 0000 AE97 AE41

Object Page Number = 0

Pool Page Number = 157312

Object ID = 1560

Object Type = Data Object

Data Page Header:

Slot Count = 8

Total Free Space = 2784

Total Reserve Space = 0

Youngest Reserve Space = n/a

Youngest TID = n/a

Free Space Offset = 2799

Maximum Record Size = 23

Data Records:

Slot 0:

Offset Location = 3996 (xF9C)

Record Length = 32 (x20)

Record Type = Data Object Header Control Record

Page count = 1

Object Creation LSN = 0000 AE97 800C

Object State = x0000

UDI Since Runstats = 0

DART Field = x00000000

Slot1:

Offset Location = 2992 (xBB0)

Record Length = 1004 (x3EC)

Record Type = Free Space Control Record

Free space entries:

0: 2884 (x0B44), 4028 (x0FBC), 4028 (x0FBC), 4028 (x0FBC)

4: 4028 (x0FBC), 4028 (x0FBC), 4028 (x0FBC), 4028 (x0FBC)

8: 4028 (x0FBC), 4028 (x0FBC), 4028 (x0FBC), 4028 (x0FBC)

省略。。。

492: 4028 (x0FBC), 4028 (x0FBC), 4028 (x0FBC), 4028 (x0FBC)

496: 4028 (x0FBC), 4028 (x0FBC), 4028 (x0FBC), 4028 (x0FBC)

Slot 2:

Offset Location = 2916 (xB64)

Record Length = 76 (x4C)

Record Type = Table Directory Record

MetaIndex Root Page = 157377

Index Type = 2

Table Descriptor Pointer -- Page 157312 Slot 3

Max Insert Search = 0

Flags = x02000200

bit representation = 00000010 00000000 00000010 00000000

Check pending info:

Constraint status = x00

Constraint RID = Page 0 Slot 0

last BID = x00000000

Slot 3:

Offset Location = 2892 (xB4C)

Record Length = 24 (x18)

Record Type = Table Description Record

Number of Columns = 2

Column 1:

Type is Long Integer

Length = 4

Prohibits NULLs

Prohibits Default

Fixed offset: 0

Column 2:

Type is Fixed Length Character String

Length = 10

Allows NULLs

Prohibits Default

Fixed offset: 4

Slot 4:

Offset Location = 2869 (xB35)

Record Length = 23 (x17)

Record Type = Table Data Record (FIXEDVAR)

Fixed part length value = 15

Column 1:

Fixed offset: 0

Type is Long Integer

Value = 1

Column 2:

Fixed offset: 4

Type is Fixed Length Character String

61202020 20202020 2020 a

Slot5:

Offset Location = 2846 (xB1E)

Record Length = 23 (x17)

Record Type = Table Data Record (FIXEDVAR)

Fixed part length value = 15

Column 1:

Fixed offset: 0

Type is Long Integer

Value = 2

Column 2:

Fixed offset: 4

Type is Fixed Length Character String

61202020 20202020 2020 a

Slot 6:

Offset Location = 2823 (xB07)

Record Length = 23 (x17)

Record Type = Table Data Record (FIXEDVAR)

Fixed part length value = 15

Column 1:

Fixed offset: 0

Type is Long Integer

Value = 3

Column 2:

Fixed offset: 4

Type is Fixed Length Character String

61202020 20202020 2020 a

Slot 7:

Offset Location = 2800 (xAF0)

Record Length = 23 (x17)

Record Type = Table Data Record (FIXEDVAR)

Fixed part length value = 15

Column1:

Fixed offset: 0

Type is Long Integer

Value = 4

Column2:

Fixed offset: 4

Type is Fixed Length Character String

61202020 20202020 2020 a

Slots Summary: Total=8, In-use=8, Deleted=0.

Table object report phase end.

______________________________________

DB2DART Processing completed with warning(s)!

Warning(s) detected during processing.

______________________________________

Complete DB2DART report found in:

/home/db2inst1/sqllib/db2dump/DART0000/EOS.RPT

_______ D A R T P R O C E S S I N G C O M P L E T E _______

找到Solt 7 (0x07),ok,你現在可以清楚的知道應用等待的Row為(4,a)

總結

通過上面的方法,我們簡單描述了一個db2鎖問題的定位方法,希望能給大家在分析和定位應用性能問題的時候起到一定的幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美精品aaa| 亚洲国产欧美一区二区丝袜黑人| 亚洲精品成人久久| 亚洲精品国产精品乱码不99按摩| 97视频在线观看视频免费视频| 91精品啪aⅴ在线观看国产| 欧美电影在线观看网站| 国产精品成人aaaaa网站| 中文字幕在线亚洲| 日韩欧亚中文在线| 国产日韩欧美在线| 国产69精品久久久久9999| 色偷偷88888欧美精品久久久| 亚洲美女精品成人在线视频| 精品福利在线视频| 日韩欧美极品在线观看| www.亚洲男人天堂| 亚洲国产日韩精品在线| 91精品视频免费| 精品久久久久国产| 亚洲高清久久网| 国产精品免费久久久久久| 国产精品偷伦免费视频观看的| 久久九九精品99国产精品| 国产精品91久久久| 播播国产欧美激情| 日韩电影视频免费| 91视频免费在线| 亚洲视频欧洲视频| 国产精品永久免费视频| 成人精品视频99在线观看免费| 久久五月天综合| 久久亚洲精品小早川怜子66| 日韩高清a**址| 一区二区欧美日韩视频| 亚洲国产精品嫩草影院久久| 日韩精品在线第一页| 国产精品高清在线| 欧美一级大片在线免费观看| 成人黄色大片在线免费观看| 中文字幕成人精品久久不卡| 92裸体在线视频网站| 自拍偷拍亚洲在线| 久久成人亚洲精品| 国产精品视频一区二区高潮| 亚洲片国产一区一级在线观看| 日韩精品在线观| 国产精品极品尤物在线观看| 久久精品男人天堂| 欧美激情精品久久久久久大尺度| 国产欧美日韩最新| 538国产精品视频一区二区| 伊是香蕉大人久久| 欧美性极品少妇精品网站| 国产精品精品久久久久久| 欧美国产第二页| 国产精品第一区| 亚洲欧美一区二区激情| 欧美在线观看www| 国产精品 欧美在线| 在线播放日韩欧美| 日韩高清不卡av| 国产欧美精品xxxx另类| 国产主播精品在线| 草民午夜欧美限制a级福利片| 国产一区二区三区视频在线观看| 亚洲精品国精品久久99热| 国模视频一区二区三区| 亚洲一区二区三区视频播放| 久久天天躁狠狠躁夜夜爽蜜月| 91久久精品日日躁夜夜躁国产| 欧美日在线观看| 亚洲欧美制服第一页| 欧美午夜视频一区二区| 亚洲国产97在线精品一区| 97精品视频在线| 日韩电影免费观看在线| 日韩欧美黄色动漫| 国产一区二区免费| 成人在线视频网站| 欧美一级在线亚洲天堂| 中文字幕亚洲欧美一区二区三区| 亚洲性无码av在线| 日韩在线视频免费观看| www.欧美免费| 91久久久久久久久| 日韩在线免费高清视频| 欧美黑人极品猛少妇色xxxxx| www.精品av.com| 成人网在线免费看| 久久福利视频网| 北条麻妃在线一区二区| 91av成人在线| 国产成人av在线播放| 日韩精品视频观看| 亚洲人成电影网| 国产精品久久久久久久久| 国内自拍欧美激情| 中文字幕欧美亚洲| 欧美大尺度在线观看| 黄色成人在线免费| 成人免费看片视频| 91久久国产精品91久久性色| 日本韩国欧美精品大片卡二| 国产69久久精品成人| 高跟丝袜欧美一区| 成人欧美一区二区三区在线湿哒哒| 欧美重口另类videos人妖| 亚洲欧美制服另类日韩| 欧美电影在线播放| 91亚洲精品久久久久久久久久久久| 亚洲伊人第一页| 亚洲视频欧美视频| 国产aⅴ夜夜欢一区二区三区| 91最新在线免费观看| 久久中文字幕一区| 国产乱人伦真实精品视频| 7777免费精品视频| 亚洲欧美中文日韩v在线观看| 欧美日在线观看| 国产精品视频一区二区三区四| 久久久久久久91| 91久久久久久久久| 91日本视频在线| 欧美另类老肥妇| 国产91九色视频| 国产又爽又黄的激情精品视频| 久久久亚洲国产天美传媒修理工| 亚洲精选中文字幕| 日韩欧美999| 久久久精品久久久久| 欧美日韩国产一区二区三区| 日本一区二区不卡| 欧美一级成年大片在线观看| 日韩经典中文字幕在线观看| 日本在线精品视频| 伊人久久五月天| 久久久91精品国产一区不卡| 久久91精品国产91久久跳| 亚洲欧美国产日韩中文字幕| 国产视频久久网| 久久精品国产综合| 久久久亚洲国产天美传媒修理工| 国产精品三级久久久久久电影| 国产日韩欧美夫妻视频在线观看| 欧美激情一区二区三级高清视频| 97av在线视频免费播放| 91精品国产99久久久久久| 欧美成人午夜激情视频| 一区二区国产精品视频| www国产亚洲精品久久网站| 欧洲精品在线视频| 成人a级免费视频| 国模视频一区二区三区| 日韩动漫免费观看电视剧高清| 国产精品香蕉在线观看| 在线色欧美三级视频| 久久99精品久久久久久青青91| 国产日产久久高清欧美一区| 97在线精品国自产拍中文| 高清欧美电影在线| 91色中文字幕| 亚洲欧美日韩成人| 精品偷拍一区二区三区在线看|