2013年6月14日 星期五

使用全文檢索

全文檢索搜尋是由全文檢索引擎( Full-Text Engine)所提供。 要使用全文檢索,資料庫管理員必須先在給定的資料表上建立全文檢索索引,然後才能在此資料表上執行全文檢索查詢。

全文檢索索引是由資料表中一個或多個欄位構成,這些欄位可以是以下資料類型: char、varchar、nchar、nvarchar、text、ntext、image、xml、varbinary 或 varbinary(max)。

要使用 SQL Server 的全文檢索查詢資料,大至需要以下四個步驟:

  1. 安裝全文檢索服務。
  2. 建立全文檢索目錄。
  3. 擴展索引(Population)。
  4. 使用全文索引進行查詢。

2013年6月7日 星期五

資料表

使用 FileStream

有許多資料都是未結構化的,如文字檔、圖檔、影音檔。這些資料一般統稱二進位大型物件(BLOB)。 若將這些未結構化的資料儲存在資料庫外面,管理上往往造成許多困擾,所以在 SQL 裡,也提供了 varbinary(max) 型別來存放 BLOG 資料。

在 SQL Server 2008 新增了 FILESTREAM 功能,可以讓 SQL Server 直接存取位於檔案系統上的非結構化資料。 它的方式是使用 varbinary(max) 型別,並整合 NTFS 檔案系統,當你存取 BLOB 資料時,實際上 SQL Server 是存取在檔案系統上資料,而不是存取位於資料庫中的資料。

至於該使用哪一種來作業,來存取 BLOG 資料呢?MSDN 提到: 若儲存的物件平均大於 1 MB,請使用 FILESTREAM varbinary(max); 如果是較小的物件,直接使用 varbinary(max) 將物件資料儲存在資料庫之中通常會提供較好的資料流處理效能。

2013年6月4日 星期二

使用 SQLCLR 和 FileStream

自 SQL 2005 後,SQL Server 開始與 .NET 的 CLR 平台整合,讓 SQL Server 可以輕鬆的使用 .NET 程式語言的強大功能,以擴充 SQL Server 功能性及延展性。

CLR 可以為 SQL Server 撰寫五種擴充功能,分別是:

  • 預存程序 (Stored Procedure)
  • 自訂函式 (User Defined Function)
  • 觸發程序 (Trigger)
  • 彙總函式 (Aggregation Function)
  • 自訂型別 (User Defined Type)

在資料庫中使用 XML 欄位型別

早期的資料庫管理系統並不支援XML格式的欄位,因此資料庫管理系統本身無法對XML資料做最佳化的儲存與管理,更無法利用XML的查詢功能,例如:XPath語法直接查閱。 現今新版本的資料庫管理系統幾乎都支援XML的資料格式,並且增加特殊指令來處理XML資料,同時亦可直接將關聯式資料轉換成XML階層式的資料做輸出,軟體系統將不必再做資料轉換的動作,即可將關聯式資料以XML格式做處理。