0

MSSQL と Pervasive の 2 つの完全に独立したデータベースがあります。当社の製品データが Pervasive データベースに保存される方法が原因で、当社の Web サイトに表示する製品の情報と機能を取得するためのクエリを簡単に実行することはできません。

そこで、DTS パッケージを使用して Pervasive から製品データを取得し、それを処理して、製品項目番号 (両方のデータベースの主キー) と製品機能のすべての列を含む 1 つの MSSQL テーブルにします。私たちのウェブサイトのクエリは非常に簡単かつ迅速です。

Pervasive データベースは ERP システムで使用されるデータベースであるため、各製品の最新の在庫合計が常に保持されます。ここで、MSSQL データベースからリアルタイムで取得したレコードに基づいて、Pervasive データベースからインベントリ情報を最も効率的に引き出す最善の方法を見つける必要があります。

1 つの製品の在庫情報を取得することは大したことではありません。私の主な関心事は、MSSQL 製品テーブルのクエリから返されたアイテムのリストの在庫データを取得し、在庫データを正しいアイテムと一致させる方法です。

リアルタイムである必要があるため、Pervasive データベースからすべてのインベントリ データをキャッシュすることはできません。

リスト内の各項目に対して SELECT ステートメントを生成する以外に、このデータを取得するための最も効率的なオプションは何ですか? 可能であれば、データベース呼び出しを 1 回だけにしたいと考えています。

ありがとう。

4

3 に答える 3

1

SQL Server から別のデータベースにデータにアクセスするには、適切な資格情報/権限を持つ他のデータベース (この例ではパーベイシブ) を指す リンク サーバー インスタンスを SQL Server 上に最初に作成する必要があります。この記事は MySQL を SQL Server 2008 にリンクするためのものですが、手順は同じです。

これが整ったら、単一のデータベースを扱っているかのように、SQL Server でクエリを作成できます。

于 2009-12-16T03:03:32.673 に答える
0

MSSQL にキャッシュを保持し、インベントリ レベルが変化したときにトリガーを使用して Pervasive にキャッシュを更新させることはできますか?

于 2009-12-16T02:57:59.753 に答える
0

これが当てはまるかどうかはよくわかりませんが、MySQL では、IN大量のデータ セット (最大数千) を一度にプルするために演算子を使用しました。

SELECT a,b,c FROM table WHERE id IN (123,234,345,456,...)

場合によっては、送信する必要のあるクエリの数を大幅に減らすことができます。

于 2009-12-16T03:04:29.723 に答える