摘要 |
---|
|
要訣 |
---|
對於大部份文字直欄來說若某個設定 (例如索引類型) 應相同,請使用文字架構資訊指定預設設定。請參閱文字架構設定。 |
若要反轉 ENABLE TEXT COLUMN 所做的變更, 請使用 DISABLE TEXT COLUMN 指令。若要停用表格中的所有啟用文字直欄, 請使用 DISABLE TEXT TABLE 指令。
啟用文字直欄之後,handle 直欄會新增至表格、設定文件資訊 (格式、語言、CCSID)、建立日誌表格,以及建立索引。
此步驟期間,DB2 Text Extender 會將 60 位元組的 VARCHAR handle 直欄新增到表格中, 此直欄中含有與已啟用之文字直欄有關的 handle。 Handle 中含有與關聯文字直欄及關聯外部檔案之文字相關的資訊。 此資訊包括專用的文件 ID、 文件語言、格式及 CCSID,以及索引名稱。
要訣 |
---|
這版的 DB2 Text Extender 不能與使用較早版次建立的索引搭配運作。 您必須停用, 並重新啟用所有 DB2 Text Extender 所啟用的資料庫及表格。 |
含有文字區塊的直欄就是 COMMENT。 在本直欄搜尋文字之前,您必須準備 DB2 Text Extender 要使用的資料庫和 COMMENT 直欄。
執行此準備步驟之後,DB2TX.MYTABLE 表格會含有 handle 的附加直欄。
註: | 隨後搜尋文字時,您可將 handle 直欄(非文字直欄)指定成要搜尋的直欄。 |
可指定一般會儲存在此文字直欄中的文字文件類型: 它們的格式(如 ASCII)、它們的語言,及它們的 CCSID。 此資訊的預設值可指定在文字架構設定中。 請參閱文字架構設定。
此步驟期間,會建立日誌表格及概略表 LOGIXnnnnnn; 其中 IXnnnnnn 是索引名稱(可從目錄概略表中取得)。 若預設表格空間在文字架構中已指定, 則日誌表格就會儲存在那裡;不然它就會儲存在 DB2 系統預設的表格空間。 若要最佳化效能及磁碟空間運用,您 可指定此日誌表格所用的不同表格空間。
也會建立起始動作定義,以便在新增或變更直欄中的文件時, 將資訊新增到日誌表格中。可用此資訊在下次編製索引時為這些文件編製索引。
如果新增或變更了外部檔案,這些起始動作定義並無法知道這些變更。在這種情況下, 若要讓起始動作定義將資訊新增到日誌表格中, 請使用更新外部檔案的索引之範例中所示的 UPDATE 陳述式。
如果在編製索引期間發生錯誤 (如找不到放在佇列中以供索引的文件時), 則會將錯誤事件 新增到日誌表格中並予以顯示 (如顯示錯誤事件所述)。
要訣 |
---|
如果在此步驟中用完日誌空間,請參閱啟用大型表格中的文字直欄以取得可能的解決方法。 |
在分割資料庫中, 都會將一個表格空間及一個節點群組指定給每個表格。 重要的是將與啟用使用者表格之節點群組相同的表格空間指定給日誌表格。 DB2 Text Extender 會在 ENABLE 指令期間檢查此處理。
如果想要每個文字直欄都有個別的索引(即,略過步驟 ENABLE TEXT TABLE), DB2 Text Extender 會在此步驟期間建立文字直欄的個別索引。 您可指定索引類型、 索引的更新頻率,以及索引的儲存目錄。 換言之,如果您想要整個表格只有一個索引, 則必須執行 ENABLE TEXT TABLE,並指定索引參數; 如果在這裡重複這些處理,則會予以略過。
使用 UPDATEINDEX 關鍵字可決定是否要立即開始所指定文字直欄中的文字文件索引, 或在下次排定的週期性索引時再開始。 如果不使用此關鍵字, 則會取用文字架構設定中所指定的值。
為文字直欄建立不同類型的索引。 您可為文字直欄建立多個索引。
例如,若要容許在相同文字直欄執行語言和智慧型搜尋, 使直欄與不同索引類型 (例如語言索引和 Ngram 索引) 產生關聯,那麼此動作很有用。 您可再度執行 ENABLE TEXT COLUMN,指定不只建立額外的索引類型,而且還要建立專用的 handle 直欄名稱。
要訣 |
---|
如果使用的是分割資料庫,且決定要變更節點群組的架構並啟動表格橫列的分配, 則必須重新建立文字索引及日誌表格;即, 您必須停用並重新啟用那個節點群組的所有 DB2 Text Extender 啟用的表格。 |
下例啟用表格 DB2TX.MYTABLE 中的文字直欄 COMMENT, 然後將名稱 COMMENTHANDLE 指定給建立的 handle 直欄:
db2tx ENABLE TEXT COLUMN db2tx.mytable comment HANDLE commenthandle
而文字資訊及索引特性的預設值都是從文字架構設定中取得。
下一個範例會明確地設定 COMMENT 直欄中的文件類型值。 而索引特性的預設值都是從文字架構設定中取得。
db2tx ENABLE TEXT COLUMN db2tx.mytable comment HANDLE commenthandle CCSID 819 LANGUAGE uk_english FORMAT rft
下一個範例會明確地設定為 COMMENT 直欄所建立的索引特性值。 此範例會設定索引類型及索引目錄, 並設定索引更新頻率,這樣可在佇列中最少已有 100 份文字文件時, 將索引更新頻率更新為在星期一到星期五的 12:00 或 15:00 時執行。 而文字資訊的預設值都是從文字架構設定中取得。
UNIX 伺服器:
db2tx ENABLE TEXT COLUMN db2tx.mytable comment HANDLE commenthandle INDEXTYPE linguistic UPDATEFREQ min(100) d(1,2,3,4,5) h(12,15) m(00) UPDATEINDEX UPDATE DIRECTORY DB2TX_INSTOWNERHOMEDIR/db2tx/indexes
就 OS/2 或 Windows NT 或 Windows 2000 伺服器而言︰
db2tx ENABLE TEXT COLUMN db2tx.mytable comment HANDLE commenthandle INDEXTYPE linguistic UPDATEFREQ min(100) d(1,2,3,4,5) h(12,15) m(00) UPDATEINDEX UPDATE DIRECTORY d:\dmb\db2tx\indexes TABLESPACE mytablespace STOGROUP mystoragegroup
如果處理的是擁有大橫列長度的表格, 則請記住,啟用文字直欄會新增類型 DB2TEXTH (VARCHAR 60) 的 handle 直欄。 如果表格已達 DB2 所決定的最大橫列長度時,這個處理就十分重要。
在大型表格中啟用文字直欄時, 也請使用 DB2 UDB REORGANIZE 公用程式來檢查表格是否需要重組。 第一次啟用大型表格時,下列步驟可加快編製索引的速度:
啟用文字直欄或外部檔案時,DB2 Text Extender 會將 handle 直欄新增到表格中, 並起始設定 handle 值,因此會寫入 DB2 UDB 日誌登錄。 如果要寫入數目很大的日誌登錄, DB2 UDB 可能會用完日誌空間。
有兩種方法可處理此狀況;第一種對效能較好,理由是:
LOGSECOND 50
請確定 LOGPRIMARY 及 LOGSECOND 的總和不大於 128。您也應增加應用程式資料堆大小。
APPLHEAPSZ 512
文字直欄必須是要由 DB2 Text Extender 啟用的 CHAR、GRAPHIC、VARGRAPHIC、LONG VARGRAPHIC、DBCLOB、VARCHAR、 LONG VARCHAR 或 CLOB。若文件在不同類型 (例如使用者定義的特殊類型 UDT) 的直欄, 您就必須提供一個函數,該函數將使用者類型視為輸入而且提供成輸出類型 CHAR、GRAPHIC、VARGRAPHIC、 LONG VARGRAPHIC、DBCLOB、VARCHAR、LONG VARCHAR 或 CLOB。
使用 ENABLE TEXT COLUMN 中的 FUNCTION 關鍵字,可指定此函數的名稱。
範例:想要將壓縮文字儲存在表格中。
db2 CREATE DISTINCT TYPE COMPRESSED_TEXT AS CLOB(1M)
db2 CREATE TABLE MYTEXT (author VARCHAR(50), text COMPRESSED_TEXT) db2 INSERT ...
若要啟用 DB2 Text Extender 所用的文字直欄,請執行下列步驟:
db2tx ENABLE TEXT COLUMN MYTABLE text FUNCTION uncompress HANDLE handle ...
DB2 Text Extender 支援資料類型 DATALINK。 DB2 的資料鏈結技術(Data Link)提供儲存在 DB2 的資料與外部檔中的資料之間的參照整合性。 它的作法是提供一個新的 DATALINK 資料類型,保留對資料庫外部儲存的物件的參照。 儲存在 DB2 表格的 DATALINK 值根據「通用資源指位器」(URL) 編碼「資料鏈結」伺服器名稱, 該伺服器名稱含有檔案和檔名。
若 DATALINK 資料在外部檔而不是在 DB2 表格,請遵循啟用外部文字檔中的說明。
啟用含有 DATALINK 資料類型的文字直欄之前,一定要執行安裝驗證範例 (請參閱準備範例資料庫來進行安裝驗證)。
AIX 範例︰下列陳述式說明如何在 AIX 使用資料類型 DATALINK, 將資料鏈結值插入文字直欄:
db2 "insert into mytable values ('Peter', dlvalue ('http://dlfs.boeblingen.ibm.com/test/documents/letter1', 'URL', 'this is a letter from Peter'))"
在本範例中,dlfs.boeblingen.ibm.com 是檔案伺服器名稱, test 是檔案系統名稱,documents/letter1 是路徑和檔案名稱。
確定檔案系統裝載在 DB2 伺服器,該伺服器名稱與您在 URL 指定的名稱相同。
Windows NT 或 Windows 2000 範例: 下列陳述式說明在 Windows 如何使用資料類型 DATALINK 將資料鏈結值插入文字直欄:
db2 "insert into mytable ('Peter', dlvalue ('unc:\\dlfs.boeblingen.ibm.com\cdrive\documents\letter1', 'URL', 'this is a letter from Peter'))"
在本範例中,cdrive 是儲存檔案的磁碟機的共用名稱。
編製那些儲存在資料鏈結直欄的文件的索引時若發生問題, 請確定您可使用 DB2 提供的 API 從 DB2 伺服器存取文件。