0
我必須將可變長度的文本存儲在oracle表中。他們中的大多數將少於200個字符,但其中一些偶爾會有數千個字符。oracle數據庫中的NCLOB列與NVARCHAR
我很想將列定義爲NCLOB
,因爲此數據類型最多可以存儲4 GB,但我不知道這樣做會產生什麼問題,因爲在98%的時間內,列的數據量足夠大。
- 一旦插入值,這些值就不會輕易改變。
- 會有成千上萬的記錄。
感謝
我必須將可變長度的文本存儲在oracle表中。他們中的大多數將少於200個字符,但其中一些偶爾會有數千個字符。oracle數據庫中的NCLOB列與NVARCHAR
我很想將列定義爲NCLOB
,因爲此數據類型最多可以存儲4 GB,但我不知道這樣做會產生什麼問題,因爲在98%的時間內,列的數據量足夠大。
感謝
即使是%2
,數據是,對不對?您必須存儲這些少數數據,因此您必須使用CLOB
。
你是對的,但替代方案將是一個更復雜的表結構。也許1個NVARCHAR列和另一個NCLOB,或類似的東西。但是,如果使用唯一一個NCLOB列(將有數十萬條記錄)沒有性能問題,我會採用更簡單的方式。 – klautern 2012-07-31 10:31:01
當你創建一個'NCLOB'字段時,db創建'LOBINDEX'並將字段數據存儲在'index'中。如果你創建一個'NVARCHAR'字段,db只創建用於存儲字段數據的表段。如果大多數查詢都是「SELECT」查詢,則應該使用「NCLOB」字段,因爲它是預索引的。但要小心,您的INSERT和UPDATE將比NVARCHAR解決方案慢。您也可以在'NVARCHAR'上創建一個手動索引,但這可能會花費您近一倍的數據量。至於使用'NCLOB'的存儲方面是有益的。但對於'DML'速度,請使用'NVARCHAR'字段。 – 2012-07-31 12:42:46