顯示具有 SQL 標籤的文章。 顯示所有文章
顯示具有 SQL 標籤的文章。 顯示所有文章

2009年3月23日 星期一

如何移除資料庫鏡像

今天在做mirror 資料庫測試時, 遇到一個問題, 在第二台的資料庫一直出現還原中,
無法恢復正常運作, 想要正常讓資料庫可以運作, 後來發現是之前操作mirror 時被鎖住
需要將mirror 停住, 設定如下:

RESTORE DATABASE  WITH RECOVERY;

選擇復原先前的鏡像資料庫。在原本是鏡像伺服器的伺服器執行個體上,輸入:

RESTORE DATABASE WITH RECOVERY;

詳細資訊可參考以下網址
http://msdn.microsoft.com/zh-tw/library/ms189112.aspx

http://technet.microsoft.com/zh-tw/library/ms180801.aspx

2009年3月16日 星期一

Partition Table for SQL 2005

應該很多人都有遇到當單一table的資料量愈來愈大時的做法

比方說:

我們可以做一個分割,便在資料庫中的多個檔案群組中儲存資料,來加速查詢效能

如果我們新增二個檔案群組(F1,F2),而假設table A 有500萬筆

我們是否可以將250萬放在F1,另250萬筆放在F2

但前端查詢程式還是一套,且都可以查到500萬筆呢???

新增一個檔案群組沒問題,而印象中也可以把table指定存放某個file group

那如果真的要達到上述做法..要怎麼做呢

將250萬拆出來沒問題,但table名稱還是要叫A

到底要怎麼做呢?

__________________________________________________________

第一步:建立資料分割函數

例:


CREATE PARTITION FUNCTION TestFn(int)
AS RANGE LEFT FOR VALUES (1,10000,20000)--->這樣就有4個partition(這樣講對嗎????)
 
1.欄位<=1
2.欄位>1 and 欄位<=10000
3.欄位>10000 and 欄位<=20000
4.欄位>20000

第二步:建立分割表

CREATE PARTITION SCHEME TestSc
AS PARTITION TestFn
TO (FG1, FG2, FG3, FG4)

這四個file group可以先建,當然也可以都只向同一個file group

不過,如果硬體許可,讓讀寫頭各別讀取,也是不錯的方法

第三步:將建立的table設定其partition

Code Snippet
CREATE TABLE PartitionTable (f1 int, f2 char(10))
ON TestSc (f1)


因此,結果就會按PartitionTable 中f1欄位值區間,分不同的partition存放