1. 程式人生 > >完整的DB2 REORG案例

完整的DB2 REORG案例

事件:

和資料量相當的另一個數據庫b上,同樣的查詢語句只需要花費1秒鐘,但a要用十幾分鍾。

  • 處理辦法:

重建表和索引,清除葉子頁碎片,可以有效提高資料庫效能。 
首先查詢syscat.indexes表,檢視STATS_TIME列,重要的使用者表的索引在最近一次runstats的時間。 
這裡寫圖片描述 
這裡寫圖片描述

從結果可以看到,幾乎所有重要的使用者表在建立之後,就從未做過runstats。 
所以為了徹底的檢查,哪些表和索引需要進行重建,需要對所有使用者表做runstats檢查。

一個完整的REORG表的過程應該是由下面的步驟組成的: 
這裡寫圖片描述

RUNSTATS:

  • 登陸資料庫:
db2 connect to rmdb11 user rmadmin using rmadmin
  • 1
  • 1

對所有使用者表執行runstats(reorgchk加update引數等同於runstats)

$ db2 reorgchk update statistics on table user

Doing RUNSTATS ....
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

REORG:

在檢查結果中,所有帶星號的表或分割槽表、以及索引都需要做reorg重建。

$ db2 reorg table RMADMIN.EXPLAIN_DIAGNOSTIC index SYSIBM.SQL120703164841960 use tempspace1
DB20000I  The REORG command
completed successfully.
$ db2 reorg table RMADMIN.EXPLAIN_DIAGNOSTIC_DATA index RMADMIN.EXP_DIAG_DAT_I1 use tempspace1 DB20000I The REORG command completed successfully. $ db2 reorg table RMADMIN.EXPLAIN_PREDICATE index RMADMIN.PRD_I1 use tempspace1 DB20000I The REORG command completed successfully. $ db2 reorg table RMADMIN.RMSTGGRPCLASS index SYSIBM.SQL120321193908820 use tempspace1 DB20000I The REORG command
completed successfully.
$ db2 reorg table RMADMIN.RMOBJECTS use tempspace1 SQL2217N The page size of the system temporary table space used by the REORG utility must match the page size of the table space(s) in which the table data resides (including the LONG or LOB column data). The cause is based on the following reason codes "1".
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

SQL2217N 
REORG 實用程式使用的系統臨時表空間的頁大小必須與表資料 (包括 LONG 或 LOB 
列資料)所在表空間的頁大小相匹配。原因基於下列原因碼 原因碼。 說明

下面是原因碼的列表: 
1.原因與表的資料的臨時表空間的選擇相關。 
2.原因與表的 LONG 或 LOB 資料的臨時表空間的選擇相關。 如果對 REORG 實用程式顯式地指定了系統臨時表,那麼 REORG 實用程式使用的系統臨時表空間的頁大小必須與表資料(包括 LONG 或 LOB列資料)所在的表空間的頁大小相匹配,否則必須為長資料指定適當的容器。下列其中一項違反了此限制: 
表資料所在的表空間的頁大小與指定的系統臨時表空間的頁大小不同。 該表包含 LONG 或 LOB列,這些列的資料駐留在頁大小與系統臨時表空間和表的規則資料的頁大小不同的表空間中,但是,無法為 LONG 或 LOB資料物件找到具有正確頁大小的表空間。 如果未對 REORG 實用程式指定系統臨時表空間或 LONG臨時表空間,那麼該實用程式在內部查詢系統臨時表空間。在資料庫中不存在使用與表資料頁大小相同的頁大小的系統臨時表空間,或者該系統臨時表空間此時不可用。

使用者響應

如果資料庫中不存在使用與表資料頁大小相同的頁大小的系統臨時表空間,請建立一個系統臨時表空間,它使用與該表資料的頁大小相匹配的頁大小。如果表資料的頁大小與 
LOB 或 LONG 資料的頁大小不同,那麼應確保使用該頁大小的系統臨時表空間也存在。 
如果資料庫中存在使用與表資料頁大小相同的頁大小的系統臨時表空間,但是發出命令時該臨時表空間不可用,請在該系統臨時表空間可用時重新發出該命令。

當前使用的臨時表空間頁大小和該表的頁大小不符合,需要新建一個頁大小和該表的頁大小符合的系統臨時表空間。 
檢視各個表空間的pagesize:

SELECT tbspace, pagesize FROM SYSIBM.SYSTABLESPACES
  • 1
  • 1

檢視當前bufferpool:

SELECT * FROM SYSCAT.BUFFERPOOLS
  • 1
  • 1

新建一個頁大小為32K的bufferpool

$ db2 CREATE BUFFERPOOL temppool32 PAGESIZE 32768
DB20000I  The SQL command completed successfully.
  • 1
  • 2
  • 1
  • 2

新建一個臨時表空間,使用剛才那個bufferpool

$ db2 "create system temporary tablespace tempspace3 pagesize 32K managed by system using ('/rmdb11data/rminst11/NODE0000/SQL00001/tmpspace3') BUFFERPOOL temppool32"
DB20000I  The SQL command completed successfully.
  • 1
  • 2
  • 1
  • 2

重新執行reorg:

$ db2 reorg table RMADMIN.RMMIGRATIONTASKS index SYSIBM.SQL120321193909130   use tempspace3
  • 1
  • 1

監視表重組:

select
       substr(tabname, 1, 15) as tab_name,
       substr(tabschema, 1, 15) as tab_schema,
       reorg_phase,reorg_max_phase,
       substr(reorg_type, 1, 20) as reorg_type,
       reorg_status,
       reorg_completion,
       dbpartitionnum
     from sysibmadm.snaptab_reorg
     order by dbpartitionnum
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

或:

db2 GET SNAPSHOT FOR TABLES on rmdb11
db2 list history reorg all for rmdb11
db2pd -db rmdb11 -reorgs index
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

或:

$ db2pd -reorgs -db rmdb11

Database Partition 0 -- Database RMDB11 -- Active -- Up 3 days 21:50:20 -- Date 10/30/2015 14:32:09

Table Reorg Information:
Address            TbspaceID TableID PartID MasterTbs MasterTab TableName          Type    IndexID    TempSpaceID
0x070000024C0D1528 5         260     n/a    n/a       n/a       EXPLAIN_PREDICATE  Offline 1          1         
0x070000024C0DEDA8 5         262     n/a    n/a       n/a       EXPLAIN_DIAGNOSTIC Offline 1          1         
0x070000024C0E6D28 5         263     n/a    n/a       n/a       EXPLAIN_DIAGNOSTIC Offline 1          1         
0x070000024B2C9628 7         5       n/a    n/a       n/a       RMMIGRATIONTASKS   Offline 1          13        
0x070000024B2A64A8 5         17      n/a    n/a       n/a       RMSTGGRPCLASS      Offline 1          1         

Table Reorg Stats:
Address            TableName          Start               End                 PhaseStart          MaxPhase   Phase      CurCount   MaxCount   Status  Completion
0x070000024C0D1528 EXPLAIN_PREDICATE  10/30/2015 10:12:38 10/30/2015 10:12:38 10/30/2015 10:12:38 4          IdxRecreat 0          0          Done    0         
0x070000024C0DEDA8 EXPLAIN_DIAGNOSTIC 10/30/2015 10:10:58 10/30/2015 10:10:59 10/30/2015 10:10:58 4          IdxRecreat 0          0          Done    0         
0x070000024C0E6D28 EXPLAIN_DIAGNOSTIC 10/30/2015 10:12:13 10/30/2015 10:12:13 10/30/2015 10:12:13 4          IdxRecreat 0          0          Done    0         
0x070000024B2C9628 RMMIGRATIONTASKS   10/30/2015 12:57:45 n/a                 10/30/2015 14:17:16 4          IdxRecreat 202794     576060     Started 0         
0x070000024B2A64A8 RMSTGGRPCLASS      10/30/2015 10:13:05 10/30/2015 10:13:05 10/30/2015 10:13:05 4          IdxRecreat 0          0          Done    0         
$ 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

這裡寫圖片描述

這裡寫圖片描述

完成!

參考資料: 
重組處理期間將發生的最大重組階段數。此項僅適用於經典(離線)重組。值的範圍為 2 到 4(SORT, BUILD, 
REPLACE,INDEX_RECREATE)。此值還可能指示執行重組時為了從多維叢集 (MDC) 
表中回收擴充套件資料塊而完成的工作總量。執行這樣的重組時,此值是 3(SCAN、DRAIN 和 RELEASE)。

對於分割槽表來說,重組是逐個資料分割槽進行的。對於傳統表重組而言,可能的階段如下所示(這些階段與它們在 sqlmon.h 
中的相應定義一起列示): 排序:SQLM_REORG_SORT 構建:SQLM_REORG_BUILD 
替換:SQLM_REORG_REPLACE 索引重新建立:SQLM_REORG_INDEX_RECREATE 
字典構建:SQLM_REORG_DICT_SAMPLE 
對於分割槽表而言,在資料分割槽的“替換”階段完成後,可以直接進入分割槽索引(如果有的話)的“索引重建”階段。僅當每個資料分割槽上的所有先前階段成功完成後,reorg_phase 
元素才會指示“索引重新建立”階段。

在 XDA 物件壓縮期間,XML 資料重組階段涉及識別表的 XML 儲存器物件。XML 字典構建階段涉及嘗試為 XML 
儲存器物件建立壓縮字典。對於 XDA 物件壓縮而言,可能的兩個階段如下所示: XML 重組:SQLM_REORG_XML_DATA XML 
字典構建:SQLM_REORG_XML_DICT_SAMPLE 對於分割槽表,在執行擴充套件資料塊回收操作時,可能的階段如下所示: 
掃描:SQLM_REORG_SCAN 漏出:SQLM_REORG_DRAIN 釋放:SQLM_REORG_RELEASE

$ db2 reorg indexes all for table RMADMIN.RMTRANSACTIONS ALLOW write ACCESS cleanup only
DB20000I  The REORG command completed successfully.
  • 1
  • 2
  • 1
  • 2

分割槽表reorg

RMADMIN.RMOBJECTS是分割槽表,reorg需要指定data partition number名稱, 
總共有62個分割槽,標記F1的有39個分割槽,2個索引分割槽標記F8 
Index: RMADMIN.IDX_OBJ_STATUS 
Data Partition: EXCEP2 
Index: SYSIBM.SQL120528224438680 
Data Partition: EXCEP2

參考: 
查詢該表分割槽情況:

select * from SYSCAT.DATAPARTITIONS where tabname='RMOBJECTS'

db2 reorg table RMADMIN.RMOBJECTS index RMADMIN.IDX_OBJ_STATUS   allow no access  ON DATA PARTITION  P13_1
  • 1
  • 1

這裡寫圖片描述

            
           

相關推薦

完整DB2 REORG案例

事件: 和資料量相當的另一個數據庫b上,同樣的查詢語句只需要花費1秒鐘,但a要用十幾分鍾。 處理辦法: 重建表和索引,清除葉子頁碎片,可以有效提高資料庫效能。  首先查詢syscat.indexes表,檢視STATS_TIME列,重要的使用者表的索

一次完整DB2 reorg經歷

事件: ecmapp11的歷史圖片每天累積,TSM每天可以建立遷移任務,但卻取不到任何資料; 與其關聯的資料庫rmdb11查詢操作速度也超慢, 在和資料量相當的另一個數據庫rmdb12上,同樣的查詢語句只需要花費1秒鐘,但rmdb11要用十幾分鍾。 處理

db2 reorg(轉)

相關 sid 命令 當前 rar 匹配 con data att DB2 reorg RUNSTATS: db2 connect to rmdb11 user rmadmin using rmadmin 對所有用戶表執行runstats(reorgchk加update

TP5.1 登入 配置是否登入公共函式的方法(完整的登入案例)

配置好後,就不需要每個控制器都需要加一個是否檢查登入的函式 1、在\application\admin\controller下建立Common.php namespace app\admin\controller; use think\Controller; use think\Reques

db2 reorg優化及原因

reorgchk,檢查table index 是否需要重組。reorg 重組,重新放置資料位置。runstats 統計資訊,可以優化查詢器 一個完整的日常維護規範可以幫助 DBA 理順每天需要的操作,以便更好的監控和維護資料庫,保證資料庫的正常、安全、高效執行,防止一

DB2 reorg表,因表空間不夠出現錯誤

http://blog.csdn.net/zheyimiao/article/details/6244873 當對一個表的結構進行改變後,需要reorg表,重新組織其目錄統計資訊,為資料庫的訪問計劃提供資訊,以便高效執行對其的操作。 在一次維護資料庫中,因添加了表

小麥子-WPF學習系列3:一個完整的介面案例

這次看一個大點的程式碼,需要有Grid面板知識,視訊裡面有,這裡對程式碼做個解析。 ![先看介面,一個串列埠除錯軟體](https://img-blog.csdn.net/20171128235929942?watermark/2/text/aH

機器學習完整過程案例分布解析,python代碼解析

然而 表示 離散 好的 了解 成了 傳感器 att and 所謂學習問題,是指觀察由n個樣本組成的集合,並依據這些數據來預測未知數據的性質。 學習任務(一個二分類問題): 區分一個普通的互聯網檢索Query是否具有某個垂直領域的意圖。如果如今有一個O2O領域的垂直

dos/bat批處理教程——第四部分:完整案例

echo 目錄 發布 判斷 案例 不能 goto 信息 iis dos/bat批處理教程——第四部分:完整案例 以上就是批處理的一些用法。現在我們把這些用法結合起來詳細的分析一下目前網上發布的一些批處理,看看他們是怎麽運作的。這裏我將列舉三個例子來詳細分析,為了保持程序

java代碼實現highchart與數據庫數據結合完整案例分析(一)---餅狀圖

隱藏 des log cred 數據庫數據 idt string 時間 input 作者原創:轉載請註明出處 在做項目的過程中,經常會用到統計數據,同時會用到highchart或echart進行數據展示,highchart是外國開發的數據統計圖插件, echa

java代碼實現highchart與數據庫數據結合完整案例分析(二)---折線圖

end idt 。。 客戶端 屬性 hid pla 循環 scrip 作者原創:未經博主允許不許轉載 在上一篇的博客中,展示和分析了如何做一個餅狀圖,有疑問可以參考上一篇博客。 現在分析和展示折線圖的繪制和案例分析, 先展示效果圖: 與餅狀圖不同的是,折線圖展現更多的數據

循序漸進DB2.DBA系統管理、運維與應用案例pdf

數據庫配置 配置更改 存儲 安全相關 快照 fmt 常用工具 tween 數據庫對象 下載地址:網盤下載 內容簡介  DB2數據庫是IBM公司關系型數據庫核心產品,在國內以及全球有著廣泛的應用。針對DB2初學者,《循序漸進DB2:DBA系統管理、運維與應用案例》循序漸進

[轉]DB2中需要REORG操作的幾種情況

sting line lte font -type compress win rmi col 問題: 在DB2數據庫中,修改完表的結構時,是否需要對表做一個reorg操作才能使表的狀態恢復正常? 答:有以下4種操作,需要對表做reorg操作 1. SET DATA TYPE

一個完整的springmvc + ajaxfileupload實現圖片上傳的案例

multipart per cnblogs not his let facade func connector 一,原理 詳細原理請看這篇文章 springmvc + ajaxfileupload解決ajax不能異步上傳圖片的問題。java.lang.ClassCastEx

DB2性能優化- REORG慢的分析

數據庫 DB2 什麽是REORG?我們知道,數據庫中有許多表的存在,而我們可能會經常地需要對表數據進行增刪改等操作,經過一系列更改後,邏輯上連續的數據可能會位於不連續的物理數據頁上,在許多插入操作創建了溢出記錄時尤其如此。按這種方式組織數據時,數據庫管理器必須執行其他讀操作才能訪問順序數據。而在刪除大

大數據采集、清洗、處理:使用MapReduce進行離線數據分析完整案例

大數據 Hadoop MapReduce 數據清洗 離線數據分析 [TOC] 1 大數據處理的常用方法 大數據處理目前比較流行的是兩種方法,一種是離線處理,一種是在線處理,基本處理架構如下: 在互聯網應用中,不管是哪一種處理方式,其基本的數據來源都是日誌數據,例如對於web應用來說,則

第六章:數據挖掘項目完整應用案例演示

分析師 過程 6.2 需求分析 不同 反饋 數據挖掘 分析報告 6.4 6.1項目背景和業務分析需求的提出 ...... 6.2數據分析師參與需求討論 針對需求收集相關的背景數據和指標,熟悉業務相關邏輯 從數據分析的專業角度評價初步的業務分析需求是否合理,是否可行 6.

微服務springCloud架構案例實戰,完整操作流程詳解

QuickStart 基於SpringCloud體系實現,簡單購物流程實現,滿足基本功能:註冊、登入、商品列表展示、商品詳情展示、訂單建立、詳情檢視、訂單支付、庫存更新等等。 每個業務服務採用獨立的MYSQL資料庫,初期考慮用到如下元件: 列表內容 服務註冊、發現: eure

2.08 hyperledger fabric完整案例

1.fabric開發流程 需求整理 合約編寫 合約部署 合約互動 外部服務編寫 2.需求分析 開發一個資產轉讓功能模組 平臺功能 使用者開戶和銷戶 資產登記,解決資產上鍊和使用者繫結資產

4、python簡單線性迴歸程式碼案例完整

第一、迴歸分析的步驟 01 根據預測目標,確定自變數和因變數 02 繪製散點圖,確定迴歸模型型別 03 估計模型引數,建立迴歸模型 04 對迴歸模型進行檢驗 迴歸方程的精度就是用來表示實際觀測點和迴歸方程的擬合程度的指標,使用判定係數來度量。 判定係數=相關係數R平方=ESS