問題タブ [ansi-sql-92]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 大きな OpenEdge テーブル全体のコピー
大規模な OpenEdge テーブル (1 億行以上) を、できればプログラムで (c# で)、SSIS などの ETL ツールやテキスト ファイル抽出などのステージング形式の外部で読み取る最速の方法を見つける必要があります。
現在、ODBC (ドライバー: Progress OpenEdge 11.5) を使用して、OFFSET および FETCH 修飾子を使用してバッチで OpenEdge 11.5 テーブルをクエリしています。
と を使用してシステム DSN を介してクエリを実行していFetchArraySize: 25
ますQueryTimeout: -1
。そして、SQLのみのアクセス用に設定されたOpenEdgeサーバーグループに接続していますmessage buffer size: 1024
.
パフォーマンスが悪い (15 分ごとに約 100 万レコード) ことに気付きました。OFFSET FETCH 修飾子を使用すると、テーブルを進めていくとパフォーマンスが低下するだけだと思います。
私の質問は、クエリのパフォーマンスを調整するために採用できる方法や操作できる設定はありますか?
- たとえば、SQL クエリを作成するためのより良い方法はありますか? たとえば、ROWID ではなく、インデックス内の列で並べ替える必要がありますか?
- SQL Server グループのメッセージ バッファ サイズを大きくする必要がありますか?
または、テーブルからデータを読み取る別の方法を検討する必要がありますか?
注: 各バッチは、その後sqlbulkcopy
SQL Server テーブルに変換されます