0

多数のレポートを作成するために使用する単純な Access データベースがあります。組織内の Teradata データベース サーバーにリンクして、追加の従業員レベルの詳細を取得しました。従業員番号には単純な左結合があり、プルするのは名前と役割だけです。

接続のないクエリは、実行におそらく 1 分ほどかかり、一度読み込まれると非常に高速です。Teradata 接続で左結合すると、すべてがクロールに遅くなります。Excel でクエリを実行するには、10 分程度かかる場合があります。クエリが Access に読み込まれると、スクロールが非常に遅くなります。

Teradata サーバーにはパフォーマンスの問題はありません。複雑な結合を使用して、同じテーブルと異なるテーブルから無関係なレポートを取得しますが、速度は非常に高速です。

ほとんど注意を払う、さらに単純なクエリを作成しようとしましたが、パフォーマンスの問題はまだ残っています。コードは次のとおりです。

SELECT EMPL_DETAILS_CURR.NM_PREFX, EMPL_DETAILS_CURR.NM_GIVEN, 
MC.DT_APP_ENTRY, MC.CHANNEL_IND

FROM MC LEFT JOIN EMPL_DETAILS_CURR ON MC.EMP_ID = EMPL_DETAILS_CURR.EMP_ID;

には 7000 レコードしかありませんMC

4

1 に答える 1

2

MS Access テーブルと Teradata テーブルの間でデータを結合する場合、ローカル マシンで Microsoft JET エンジンを使用して結合を完了する必要があります。これは、Teradata テーブルに存在するデータが、結合できるようにローカル マシンに取り込まれていることを意味します。

テーブルがすべて Teradata 上にあり、MS Access のリンクされたテーブルを介してアクセスされる場合、結合はまだローカルで発生している可能性があります。SQL が Teradata に渡されて実行され、クエリの完了時に結果が MS Access に返されるように、クエリを ODBC ダイレクト (正確な用語は忘れました) クエリとして実行することをお勧めします。

于 2013-06-21T17:53:53.907 に答える