SQL Server | The Will Will Web

The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

如何設定 SQL Server 2008 接受 SSL 加密連接 (需設定憑證)

最近在研究如何讓 SQL Server 用戶端程式能夠連接到 SQL Server 2008 時能夠採用 SSL 加密連線,卻發現網路上很難找資料,找到的大多是 SQL Server 2000 或 2005 的說明,而 SQL Server 2008 的說明卻經常不夠完整,在 TechNet 網站也非常難找到正式的教學文件告知怎樣設定,研究了兩天後終於研究出正確設定的標準作業流程,真是太開心了!^_^

... 繼續閱讀 ...

透過 Entity Framework 如何有效率的取回特定資料表的筆數

在許多開發情境下經常會試圖取回整個資料表的筆數,像我們就有個統計網站累積使用人次功能,開發人員寫的時候就是用 SELECT COUNT(*) FROM TableName 的方式來取得目前總共有多少人次進入網站,但用這種方式執行效率並不高,每次執行都會產生一次 Index Scan,也就是在 SQL Server 資料庫裡所有主索引鍵的資料都會被掃瞄過一次才能統計出資料總筆數,當資料越多的時候,效能就會越差,在這裡我提供另一種 hack 的方法可以更有效率的取得整個表格的總筆數,但此法僅適用於 SQL Server 喔!

... 繼續閱讀 ...

解決 SQL Server Profiler 找不到「使用範本」的問題

我的個人電腦由於先安裝了 SQL Server 2005,然後再安裝了 SQL Server 2008,之後又安裝了 SQL Server 2008 R2,在這樣不斷升級的過程我發現我目前的最新版 SQL Server 2008 R2 的 Profiler 工具找不到「使用範本」可選,以致於無法讓我在本機收錄 SQL Server 執行時期的資料,這問題曾經困擾著我,不過還好問題已經修復了,以下是修復此問題的筆記。

... 繼續閱讀 ...

如何在 SQL 2008 安裝 Performance Dashboard Reports

微軟在 SQL Server 2005 Service Pack 2 推出的時候也釋出了一套免費的 Performance Dashboard Reports 自訂報表,透過此報表可以很輕易的分析出整台 SQL Server 的執行效能,是一個非常非常實用的效能分析工具,幾乎是每位 DBA 必備的工具之一,可惜的是到了 SQL Server 2008 之後就不再更新,以致於無法正常安裝到 SQL Server 2008 之後的版本,本文章將說明正確的安裝步驟,讓此報表也能夠在 SQL Server 2008 上正確執行。

... 繼續閱讀 ...

SQL Server 安全性概論與無法刪除資料庫使用者的解決辦法

經常有人來問我特定 SQL Server 資料庫裡的使用者無法刪除的問題,這問題其實跟 SQL Server 的安全性架構有很大關係,解決這個問題當然還是瞭解觀念的重要性大於知道如何解決問題。除了講解觀念外,本篇文章也會列出一些出問題時的情境,方便快速解決問題。

... 繼續閱讀 ...

移動服務所需的檔案時應連帶複製完整的 NTFS ACLs 資訊

在幾年前曾經有一次因為擅自移動了 Hyper-V 裡所有的 VM 設定檔與 VHD 虛擬硬碟到另一顆硬碟,結果導致 Hyper-V 無法正常開啟該虛擬機,後來發現原來是檔案的 NTFS 相關資訊沒有複製過去的關係而導致 Hyper-V 的權限不足以致於無法正確開啟 VM 執行。前幾天又遇到了類似的情況,我為了將 SQL Server 完整的系統檔案、紀錄、系統資料庫與使用者資料庫都完整的移至另一台硬碟,這次就知道要小心複製這些檔案,以免又因為權限不足而導致 SQL Server 無法開啟。

... 繼續閱讀 ...

如何找出 SQL Server 2008 資料庫裡是否建立了多餘的索引

講到 SQL Server 2008 效能調校,這可是一門大大的學問,但是若能掌握一些基本的 SQL Server 資料庫運作原理,要能成為 SQL Server 效能調校的專家其實並不困難。我們都知道學習這些原理並不難,看書就會了,難的是如何才能在實務管理工作上真正的融會貫通、靈活運用這些已知的知識,再搭配一些方便的工具幫你快速取得所要的重要資訊,進而做出效能調校的判斷與改善現有資料庫的效能問題。今天我打算來分享一個分析索引使用量統計的技巧,來改善資料庫「寫入」效率的問題。

... 繼續閱讀 ...

SQL Server 快速產生還原資料庫 T-SQL 指令碼的技巧

去年曾經分享過一篇【觀念釐清:SQL Server 完整備份、差異備份、交易記錄備份】解釋 SQL Server 備份觀念,看懂的人應該能清楚理解資料庫的備份過程與依序還原資料庫的方法,我以往都會認為這種依序還原資料庫的方法實在太沒效率,真的遇到資料庫災難的時候需要花不少時間準備還原資料庫的 T-SQL 指令碼然後才能批次執行將資料庫還原,不過最近意外發現原來在 Management Studio 有個非常棒的小技巧可以幫我快速產生還原資料庫的 T-SQL 指令碼,讓你不管是本機資料庫還原異機資料庫還原都能非常快速的完成!

... 繼續閱讀 ...

如何把 SQL Server 標準版當成 SQL Server Express 來用

大家會不會看到這標題覺得很奇怪,怎麼會有人安裝了 SQL Server 標準版了,還會想拿來當成 SQL Server Express 來用呢?其實真正的需求是這樣的,當我們要設定 SQL Server 連線參數時,在指定 Data Source 的時候會指定伺服器名稱,而有客戶的 ASP.NET 網站竟然把連線參數寫死在程式裡,而且廠商倒閉了以致於沒有原始檔可以修改後重新編譯,當時的資料庫的 Data Source 是採用 (local)\SQLEXPRESS 為伺服器名稱,現在的卻重新安裝了 SQL Server 標準版,所以根本連不上伺服器,這時學會這個技巧就很重要了。

... 繼續閱讀 ...

如何清除 Management Studio 登入時的伺服器名稱歷史清單

我的 SQL Server Management Studio 已經使用了非常久了,由於工作上經常要連接到不同的資料庫執行個體,所以每次開啟 Management Studio 實在伺服器名稱那邊的歷史清單項目就非常多,數量多倒還沒關係,重點是這些清單裡已經有許多資料庫由於電腦名稱變更過已經連不到了,而且還沒提供介面可清空或管理這些歷史連線清單(MRU List),我花了時間研究終於找到清空這些歷史清單的方式。

... 繼續閱讀 ...

如何利用「資料庫發行精靈」將新版 SQL 資料庫降級成舊版

不知道各位有沒有遇過一種狀況,那就是原本 SQL Server 2005 的資料庫,將資料庫卸離 (Detach) 後丟進新版的 SQL Server 版本掛載 ( 例如 SQL 2008 或 SQL 2008 R2 ),然後突然間有同事說他的資料庫是舊版的,而你怎樣都再也無法將資料庫卸離後掛載到舊版的 SQL Server 了?!這問題似乎不是很多人知道怎樣處理,今天特別撰文說明整個轉移資料庫的流程,而且此功能已經內建於 Visual Studio 2010 之中,使用上非常方便,只是若沒人提起這功能,自己要找到這功能還真有點困難。^^

... 繼續閱讀 ...

如何在 SQL Server 資料庫設計「一對一」表格關聯

我們在做資料庫設計時,通常都會需要設計表格之間的關聯,不過一般來說都是設定一對多的表格關聯,如果是多對多的表格關聯通常都會多設計一張表格來儲存兩個表格之間多對多的關聯關係。但是如果我們今天單純的只是想設計一些擴充欄位到另一個獨立的表格裡,這時我們在 SQL Server 裡還需要設計關聯嗎?還是在程式中自己知道就好不需要設計關聯呢?其實是需要的,只是很少人知道可以這樣設計而已!

... 繼續閱讀 ...