1

テーブルのフィルター処理されたレコードを表示する ax 2009 のフォームがあります (合計約 5.000.000 レコード、フィルター処理された約 1000 レコード)。フォームでこれらのレコードをいくつか選択し、フォーム コントロール ( alt+ f9) を介してそれらを削除すると、非常に時間がかかります。1 つのレコードはすぐに削除され、約 20 のレコードを選択するには数分かかります。テーブルには deleteAction が 1 つしかありません。何が操作を妨げているのでしょうか?

編集:

関連テーブルには 2 つのインデックスがあり、どちらも重複を許可しません。1 つ目は整数フィールドのインデックスで、2 つ目は 3 つのフィールドを組み合わせたものです。

createRedIdIndex はアクティブ化されていません。

このフィルターは、queryBuildRange 内の 1 つの列 ( employeeID ) を使用します。

deleteAction: 別のテーブル (B) は、前述のテーブル (A) の ID ( indexed ) を参照します。A には B に対する deleteAction があります。設定は「カスケード」です。

2 つのテーブルは、id フィールドを介して関連付けられています。

関係はインデックスによって解決できます。

そして、削除したいのは約 20 レコードの量だけなので、「to-delete-data-mount」が大きすぎるという考えには従いません!

4

3 に答える 3

1

これもご覧ください:http: //blogs.msdn.com/b/emeadaxsupport/archive/2010/07/12/forms-with-a-high-number-of-records-take-a-significant-time -to-show.aspx

追加を検討してください

grid.autoSizeColumns(false);

記事で提案されているように。

于 2010-08-04T14:05:15.117 に答える
0

AX でデータベースのパフォーマンスの問題を診断し、SQL タブ ページの Tools\Setup で SQL トレースを有効にします。

于 2010-07-08T11:52:06.573 に答える
0

コード プロファイラーを使用して、時間が使用されている場所を確認します。

于 2010-07-29T06:44:05.773 に答える