誤區 #27:使用BACKUP ... WITH CHECKSUM可以替代DBCC CheckDB錯誤乍一看,由於BACKUP WITH CHECKSUM會檢測所有分配出去的頁的校正和的值,這個誤區貌似是這麼回事,但實際上並不是這麼回事,原因如下:由SQL Server 2000或是更早版本升上來的資料庫page checksums必須開啟,在開啟後,並不是資料庫中所有的頁都會被叫上頁校正和,當頁損壞發生時,IO系統可不會區分損壞的頁是有頁校正和還是沒有校正和的。所以使用BACKUP ...
--追蹤檔案讀入到表中分析 SELECT * INTO ZGSJY FROM fn_trace_gettable('E:\wxxcdbprofiler.trc', default); --某時間內,最耗時SQL select TOP 100 SUBSTRING(Textdata,1,660) as '名稱', count(*) as '數量', sum(duration/1000) as '總執行時間ms', avg(duration/1000) as
DROP TABLE T_TESTCREATE TABLE T_TEST( ID INT IDENTITY PRIMARY KEY,STATUS BIT)INSERT INTO T_TEST SELECT 0GO 100000INSERT INTO T_TEST SELECT 1 CREATE INDEX IXF_T_TEST_STATUS ON T_TEST(STATUS) WHERE STATUS=1UPDATE STATISTICS T_TEST with
資料庫調優工作中,有一部分是需要排查IO問題的,例如IO的速度或者RAID層級無法響應高並發下的快速請求。最常見的就是查看磁碟每次讀寫的響應速度,通過效能計數器Avg.Disk sec/Read(Write)我們可以很直觀的看到他們。不同的業務,繁忙程度也不同,需要什麼樣的IO做支撐?難道都用最高配的IO去配置硬體嗎?能否通過一些經驗和基準來判斷當下磁碟環境是否能滿足需求呢?手上有4塊 Inter SSD DC S3500 Series 600GB硬碟做成的RAID1兩塊,我們就拿它來練練手吧!
在SQL Server 2005中,它的另外一個強大的新特點是資料庫快照集。資料庫快照集是一個資料庫的唯讀副本,它是資料庫所有資料的映射,由快照被執行的時間點來決定它的內容。這些資料庫快照集在報表方面是非常有價值,因為在快照資料庫中或者在原資料庫中,對於任何查詢而言沒有鎖就將被執行。快照也可以使用在災難恢複中,因為你可以將現有的資料恢複到現有的快照中,或者還可以在有害資料操作聲明的事件中儲存個別必要的表和資料。資料庫快照集是如何工作的?可以使用典型的資料庫命令CREATE