今天看了SQL PASS, 有人分享一個免費的工具, 名叫SQL PAGE VIEWER. 看起來好像不錯用的, 不過心中想的另一個方向是, page不就是用DBCC去打印就可以了嗎? 還是這個工具有什麼不一樣的地方呢? 好奇心讓Colin花了時間測試, 測完了心中在淌血!!! 偶的時間還來~~~ 那麼來看一下這個工具吧.

安裝步驟很簡單的, 基本上就是下一步、下一步的去完成即可, 沒什麼要選擇的.

STEP1: 歡迎畫面, 點選 "next".

STEP2: 授權, 勾選 "I accept the terms in the License Agreement", 再點選 "next".
 

STEP3: 從安裝路徑來看, 我們可以知道這個工具是設計於 x86平台的, 沒關係的, 就點選 "Next". 
 

STEP4: 確認安裝, 點選"Install".
 

STEP5. 完成安裝.
 

當我們去開啟這個工具時, 會提示 .NET Framework 4.0是必要的, 沒裝的可以事後裝, 但沒有就是沒法子.
   

以上是安裝的部份.


 

接下來就實際測試看看這個工具在幹嘛了, Colin是先建立一個測試資料庫, 並且塞了幾筆資料進去測試. 以下是相關指令碼:

USE master;
GO

CREATE DATABASE [SQL_PAGE_VIEWER]
ON PRIMARY
    (NAME='SQL_PAGE_VIEWER_date',FILENAME='<PATH>\SQL_PAGE_VIEWER_data.mdf')
LOG ON
    (NAME='SQL_PAGE_VIEWER_log',FILENAME='<PATH>\SQL_PAGE_VIEWER_log.ldf');
GO

USE
[SQL_PAGE_VIEWER];
GO

CREATE
TABLE tbl_test(C1 int, C2 nchar(5));
GO

INSERT
INTO tbl_test
VALUES
    (1,'aaaaa'),
    (2,'bbbbb'),
    (3,'ccccc'),
    (4,'ddddd');
G  O

開啟SQL Page Viewer工具程式, 初始畫面長的如下圖所示:

簡單來說:
左上區塊應該是List資料庫清單.
右上區塊是設定項目.
下方區塊是Output Result.

接著Colin就連線到伺服器上了.
 

連線上後, 可以看到左上區塊列出了資料庫清單, 並且drill downtable. 點到table層後就可以列出該資料表所置於哪些page.
 

可想而知, 要列出這個清單, 不外乎就是去跑下列的Loop:
1. 取資料庫清單
2. 取資料表 (schema) 清單
3. 打印 DBCC IND結果.

 

所以用測試資料庫來做說明的話, 就會像是去執行下列的結果.

USE [SQL_PAGE_VIEWER];
GO

DBCC IND(0, '[dbo].[tbl_test]'
, -1)

看看從SQL列出的項目, 是否和工具取到的結果很像呢?
 

再來就是右上的區塊了, 如果有使用過DBCC PAGE功能的人, 一眼就看出來, 這四個選項, 就是DBCC PAGE使用的參數 "Print option". 同時DB Name, File Number, Page Number 不也就是DBCC PAGE要用到的參數嗎?
 

所以說, 上面那四個選項, 就相當於下列四行命令.

DBCC PAGE ([SQL_PAGE_VIEWER],1,118,0)
DBCC PAGE ([SQL_PAGE_VIEWER],1,118,1)
DBCC PAGE ([SQL_PAGE_VIEWER],1,118,2)
DBCC PAGE ([SQL_PAGE_VIEWER],1,118,3)

最後來看結果, 透過SQL Page Viewer, 不過就是把DBCC PAGE的結果表格化, 美化一下罷了, 不覺得有特別好用的地方, 下列就舉一例吧! 其他的就給看倌自己去玩玩囉~~~
 

這是用SQL DBCC PAGE打出來的結果, 真的只是表格化而已.
 

Colin的經驗來看, 真的需要去打印Page中的東西, 還是用DBCC PAGE語法去實現吧! 一般不會有啥機會讓技術人員隨便裝工具的………

文章標籤
全站熱搜
創作者介紹
創作者 Colin (紫鴛) 的頭像
Colin (紫鴛)

Colin の 資料庫小鋪

Colin (紫鴛) 發表在 痞客邦 留言(0) 人氣(621)