2012-03-22 11 views
1

私が使用している環境はCF8およびSQL 2005で、データ型CLOBはで、CF管理者のが無効です。私の懸案事項は、CFアドミニストレーターでCLOBデータ型を使用可能にすることで、パフォーマンスの低下があるかどうかです。結果セットのColdFusion 8 + MSSQL 2005およびCLOBデータ型

有効にする必要がある理由は、SQLはAJAX XML応答を構築しているからです。応答が大きい場合、結果は切り捨てられるか、SQL開発者がストアド・プロシージャを作成した方法に応じて複数の行で戻されます。 CLOBを使用可能にすると、結果全体が戻されます。私が持っているもう1つの選択肢は、SQLに複数の行でXML結果を常に戻し、CFに各結果行の文字列を結合させることです。

このアイデアを経験したことがありましたら、 ありがとう!

答えて

0

StoredProcにはデータセットまたは複数のデータセットが返され、CFを使用して必要な方法でXMLが構築されます。

私はCLOBを使用する必要はありません。私はほとんどの場合、varcharのデータ型に固執しています。それは正常に機能するようです。

MSSQLが実際のXMLファイル(文字列だけでなく)を生成し、単にファイル名を返すようにするStored Procを呼び出すこともできます。次に、CFFILE action = "read"を使用してxml文字列を取得し、それをaccrodingly解析することができます。あなたのWebサーバーとdbに共通のファイル記憶領域があると仮定します。

+0

Jason、以下のコメントを参照してください。 JDBCはこれをうまく処理します。複数の行に10kの文字データを処理するのに十分なリソースがある場合は、1つのフィールドにも十分なリソースを送信できます。それは私の服用です(犯罪ではありません:) CMSシステムは、しばしばJDBCを介して大きなテキストに依存しています。それはそれのために設計されているものです。 –

+0

@TheJason:FYI、混乱を避けるために、私は "text"(SQLサーバーのclob型である)ではなく "varchar"と言うように投稿を修正しました。それはあなたが意味するものではない場合は、それをロールバックしてください。 – Leigh

+0

@マークAクルーガー:同意し、犯行はない。私が言ったように、私はCLOBの必要性を決して持っていないので、私は何を知っているのですか?しかしCLOBに興味を持ってくれてありがとう。 – TheJason

3

私は本当にClobデータを返す方がコストがかからず、複数の行のデータをXML文字列に連結し、それを解析する(ick!)と思っています。あなたがしようとしているのは、CLOBのために設計されたものです。 JDBCはそれをかなりうまく処理します。パフォーマンスヒットはおそらくごくわずかです。結局のところ、複数の行や単一のフィールドのいずれの場合でも、同じ量の文字データをどちらかの方法で返さなければなりません。そして、SQL側で「分割」してCF側で「再組み立て」する必要があるのは、確実にホイールを再改造するようなものです。

私はこのような質問を追加することがあります。適度な量のテストは、あなた自身の満足のためにこの質問に答えることができるように思われます - いいえ?

+0

jdbcがそれを処理する場合、パフォーマンスが向上する可能性があることについて私はあなたに同意する傾向があります。はい、あなたは文字がとにかく返されなければならないと言って正しいですが、結果の行/列対1列の複数の行にSQLを返すようにするスイッチはかなりシンプルです。これは、テンポラリテーブルまたは変数を使用しています。デフォルトで一時表を使用すると、xml応答と変数を分割することはできません。 CFでデータを結合することから得られる利点の1つは、サイト全体でCLOBをオンにするか、問題が切り離されていることです。 – amaurer

+0

テストでは問題があると証明したり反駁したりするのは間違いありませんが、前に "車輪を再発明するような気がする"と言ったように、私も誰かがこれを前に考慮したと思っています。いずれにせよ、私はテストする必要があるが、私が考えなかったかもしれない何か、またはそこに「つかまえ」があるかを探している。 – amaurer

関連する問題