2012-03-22 70 views
1

我正在使用的環境是CF8和SQL 2005,CF管理員上的數據類型CLOB是已禁用。我擔心的是,通過在CF管理員中啓用CLOB數據類型,是否會出現性能問題。結果集上的ColdFusion 8 + MSSQL 2005和CLOB數據類型

我想/之所以需要啓用它,SQL正在建設的AJAX XML響應。當響應很大時,結果會被截斷或返回多行(這取決於SQL開發人員如何創建存儲過程)。啓用CLOB可以返回整個結果。我有的另一個選擇是讓SQL始終以多行返回XML結果,並讓CF爲每個結果行加入字符串。

任何有這種想法,或有任何想法的一些經驗? 謝謝!

回答

0

我只想有StoredProc返回數據集或多個數據集,以及剛剛創建XML您通過CF.需要的方式

我從來不需要使用CLOB。我幾乎總是堅持使用varchar數據類型,而且它看起來很好。

也有,你可以調用存儲過程,這將觸發MSSQL產生一個實際的XML文件(不只是一個字符串),並簡單地返回你的文件名的選項。然後,您可以使用CFFILE action =「read」來獲取xml字符串並對其進行解析。假設你的web服務器和db有一個公用文件存儲區。

+0

傑森,看到我下面的評論。 JDBC將處理這一點很好。如果有足夠的資源來處理多行中的10k字符數據,那麼也有足夠的資源在單個字段中發送。這是我的要求(沒有冒犯性:) CMS系統通常通過JDBC使用大型文本。這是它的設計目的。 – 2012-03-22 15:56:13

+0

@TheJason:FYI,爲了避免混淆,我修改了帖子來說「varchar」而不是「text」(這是一個在sql server中的clob類型)。如果這不是你的意思,那就把它推回去。 – Leigh 2012-03-22 16:00:41

+0

@Mark A Kruger:同意,並且沒有冒犯。就像我說過的,我從來沒有需要CLOB,所以我知道我到底該知道些什麼:)但是謝謝引發了我對CLOB的興趣。 – TheJason 2012-03-22 16:02:31

3

我真的覺得返回CLOB數據可能會更便宜,然後串聯多行數據到一個XML字符串,然後解析它(益!)。你想要做的是CLOB的設計目的。 JDBC很好地處理它。性能命中可能可以忽略不計。畢竟,無論是在多行還是單個字段中,都必須以任何方式返回相同數量的字符數據。而要在SQL方面「分手」,然後在CF方面「重新組裝」它看起來像是在重新確定方向。

我想補充一點,像這樣的問題,有時會迷惑我。適量的測試似乎能夠回答這個問題,讓你自己滿意 - 不是嗎?

+0

我傾向於同意你關於如果jdbc處理它可能會更好的性能。是的,你說的無論如何都必須返回字符,但是在結果行/列上使用SQL返回的開關與在一列中使用多行的開關非常簡單。它使用臨時表或變量。默認情況下使用臨時表將xml響應與變量分開不會。在CF中加入數據一起獲得的一件事情是,這個問題是孤立的,而在整個站點上打開CLOB。 – amaurer 2012-03-22 17:33:44

+0

你說得對,測試會證明或反駁任何問題,但正如你之前所說的「似乎重新發明輪子」,我也認爲有人曾經考慮過這一點。無論我需要測試,但我正在尋找一些我可能沒有考慮過的事情或任何「陷阱」。 – amaurer 2012-03-22 17:36:37

相關問題