7

紳士淑女-

SQL Serverで(Informix)に対してリンクサーバーを使用することを提案した人と協力しています。

彼らは(理由は不明ですが)SQLに接続するクライアントツールと、SQL ServerがSQLステートメントをInformixにプロキシし、クライアントツールを直接Informixに向けることで幸運が得られることを発見しました。もちろん、私の考えは「クライアント> Informix接続の問題を解決し、ハックを使用しないでください」ですが、それは重要なことではなく、おそらくあなたが本当に交渉することはできません。

そうは言っても、パフォーマンスの観点からこのアプローチの危険性は何ですか?

  • すべてのクエリはInformix上の単一のデータベースにヒットし、ネイティブSQLテーブルとInformixの間で異種のJOINを実行する必要はありません。SQL Serverは、文字通りプロキシ/データポンプとして機能しています。
  • 実行されるクエリのほとんどは、かなりの量のグループ化と集計も実行するため、(運が良ければ)ボックス間で何トンもの行を移動することはありません。

私の質問:

SQLServerで「GROUPBY」の質問が発生すると、個々の詳細な行がSQL Serverに返され、Informixと比較してそこで集約されるシナリオを誰かが特定できますか?私に関する限り、それは黙示録です。

このタイプの状況でリンクサーバーを使用することで、知っておく必要のある(そしてソリューションを単純化してクライアント> Informixに移行する方法として使用する)他の(悪い)パフォーマンスへの影響はありますか?

ありがとう!

4

1 に答える 1

9

次の形式でSQLServerから直接クエリでリンクサーバーを使用する場合:

SELECT Col1, col2, col3, SUM(col4)
FROM LinkedServer.Database.schema.Table
GROUP BY Col1, col2, col3

次に、SQLServerで集計を実行します。ただし、OPENQUERYまたはを使用OPENROWSETすると、リンクサーバーでクエリが実行され、SQLServerにデータが取得されます。

SELECT *
FROM OPENQUERY(LinkedServer, '
SELECT Col1, col2, col3, SUM(col4)
FROM Database.schema.Table
GROUP BY Col1, col2, col3')
于 2012-06-01T19:57:56.630 に答える