###### tags: `Sql` {%hackmd BJrTq20hE %} # SQL Server 組成 1. 關聯式引擎 * 指令解析 Parser * 執行計畫優化評估 2. 儲存引擎 * 獲取資料方法評估 3. 記憶體緩衝區 * 執行計畫快取 Plan Cache * 資料快取 Data Cache 4. 檔案系統 ## 運作方式 1. 使用者透過TCP/IP Port 連到指定的 SQL SERVER 2. **Parser** 會解析指令是否正確 3. 正確就會到 **Plan Cache** 查詢是否有現成的計畫快取可以使用並獲取資料。有錯誤就會拋錯到客戶端。 4. 如果沒有現成計畫快取,就會執行計畫優化評估來獲取資料 5. 如果資料已存在 **Data Cache** 會直接把資料回傳給客戶端。 6. 如果資料不存在 **Data Cache** 就會到**儲存引擎獲取資 料方法評估**,用最快的方式獲取資料,並到**檔案系統**,根據設定的index獲取資料,並把資料存到 **Data Cache** 7. **Data Cache** 再把資料回給客戶端 ### 增加效能的方式 1. **省略執行計畫優化評估的過程**,這是一個較耗費資料的過程。記憶體內如果有現成的執行計畫,那就可以更快速取得資料。 2. 所有資料存取都會透過 **資料快取**,記憶體越大,效能越好。SQL Server本身就是記憶體耗能怪獸,如果有可以用的記憶體,他都會搶過來 :scream: :crocodile: ## 備份 資料庫屬性 -> 資料庫設定設定 -> 資料庫預設位置 不要把檔案放在預設的C槽,當資料不正常變多,C槽爆炸,系統會出現錯誤或無法使用。 ### 備份排程 通常是以每日或每周為一單位 以每周為例,星期日凌晨12點完整備份,一到六凌晨12點差異備份,每天隔6小時(6、12、18點)進行LOG備份 ### 資料庫儲存快照 STORAGE SNAPSHOP BACKUP 比較有效率、適合大型資料庫,硬體有支援此功能。 做此備份之前,系統會凍結幾秒鐘,禁止交易(Freeze the I/O)並執行儲存快照(Snapshot) Snapshop backup 的備份檔用來鏡像複寫(Mirror)、災難備援資料中心(Vault) 如果想要手動執行備份,記得要勾選 *只複製備份* ,才不會破壞自動備份的LNS鏈結資料 ## 復原/還原 Restore/Recovery > **在執行完 Restore 之後,資料庫一定要進行Recovery才可以上線使用** > 1. 確認資料檔MDG、交易記錄檔LDG是否存在 2. 選定需要的復原的檔案 以上面備份排成的時間為例: 如果想要還原到前一天的11點,就會需要前一天的完整備份,6點和12點的差異備份,最後再還原(Recovery)到指定時間點。 * 如果是要做簡單復原模式的資料庫就沒有辦法做特定時間點的復原 ## 資料庫建置 初始大小 8 MB 自動成長 64MB 無上限 ## 顯示所有資料庫 ```sql= --顯示所有資料庫 SELECT * FROM SYS.DATABASES --檢查備份鏈結關係 RESTORE HEADERONLY FROM DISK ='C:\SQL_ADDRESS' ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up