做開發,平時難免和數據庫打交道,特別是寫存儲過程,對於我們這些不常寫SQL的人來說是一件極其痛苦的事,每次寫完運行總是有錯,如果用的是本地數據庫的話還好,可以在本機調試SQL,那如果在數據庫在服務器上面,調試被禁用,那就悲劇了~
最近,由於工作需求,寫一個存儲過程,有幾十個參數,數據庫在服務器上面,寫完了,測試完查詢語句沒有問題,但是到了項目里面查詢時就出錯,很是氣人!想到了用SQL Profiler這個工具,打開選擇默認設置,開始跟蹤,暈,海量數據涌來,看的頭暈,根本找不到要跟蹤的語句。后來,經過百度搜索和仔細研究,算是學會使用SQL Profiler了。下面和大家分享一下。
SQL Profiler是一個圖形界面和一組系統存儲過程,其作用如下:
- 圖形化監視SQL Server查詢;
- 在后台收集查詢信息;
- 分析性能;
- 診斷像死鎖之類的問題;
- 調試T-SQL語句;
- 模擬重放SQL Server活動;
也可以使用SQL Profiler捕捉在SQL Server實例上執行的活動。這樣的活動被稱為Profiler跟蹤。
不多說廢話了,關於SQL Profiler的介紹網上多的是,大家自己找吧。下面說到實用的,開始動手操作吧!(注:本地數據庫的就不用說了,可以調試運行,主要說數據庫在服務器上面的情況。)
首先說明一下SQL Server Express版本是沒有SQL Profiler工具的,企業版有這個工具,其他版本沒有用過。下面來看下SQL Profiler在什么地方,首先打開SQL Server Management Sutdio,點擊菜單,Tools > SQL Server Profiler,如圖:
點擊后,首先會出現登錄界面,輸入用戶名密碼后,會看到如下界面:
第四行有一項Use the template,選擇Standard,如果是本地數據庫的話,訪問數據庫的只有你一個人,點擊Run就可以了。如果在服務器上,訪問數據的人很多,所以要對結果進行一些過了。然后,點擊選項卡Events Selection,如圖:
可以看到Standard的默認選項,這個都不用管,選中復選框Show all columns,否則后面的HostName找不到。點擊Column Filters...按鈕,打開過濾選項頁面:
下拉找到HostName項,在Like里面加入自己的計算機名稱,這樣就只顯示我們這台計算機發送的SQL了。
然后,點擊OK,點擊Run就開始跟蹤了,之后你在你電腦上面進行的數據庫訪問,都會被記錄下來。
注意:是在你電腦上面,你訪問服務器上面的網站,數據庫訪問是在服務器上面進行的,不是在你的電腦上面。只有你調試運行的時候,才是從你的電腦訪問服務器,才能被跟蹤到。
跟蹤結果如下:
選中某條記錄后就會顯示執行的SQL,至於存儲過程,我們可以清楚的看到傳入的參數,還可以復制出來,進行調試。
如果記錄過多,可以選擇Edit > Find...下面的菜單,進行搜索。
看到這里,是不是突然感覺很簡單啊,呵呵,看了那么多教程,講的東西挺多,搞半天找不到自己想要的東西,越整越煩!
如果每次都改計算機名稱,很不方便,我們可以做一個自己的模版,下次使用時就不用再進行配置了。下面來看看如何建立自己的模版吧:
如圖,點擊菜單,打開模版頁面.如圖所示:
輸入你自己的模版名稱,如MyProfiler,然后勾選Base new template on existing one:,就是基於某個已存在的模版就行修改,我們依舊選擇Standard,下面還有一個Use as default template for selected server type,就是設置為默認模版,勾選上后,我們每次新建跟蹤的時候就會默認選中我們添加的這個模版,建議勾上。然后點擊Events Selection選項卡,設置HostName就可以了。完成后保存就可以了。
然后,點擊File > New trace...新建跟蹤,會看到我們新建的模版,並且是默認選中的,此時我們直接點擊Run就可以繼續我們的工作了。