2016-12-09 5 views
0

〜84列と〜280k行の大きな古いMS Access表があります。これらの列のうち3つはLabNumber(索引付け)、HospitalNumber(索引付けされていない)、およびNHSNumber(索引付けされていない)です。 LabNumberの値を検索する用語については、HospitalNumberNHSNumberを検索したいと思います。定期的に使用されるプロダクションデータベースなので、テーブルとなる必要があります。です。ああ、データベースはネットワーク経由でアクセスされています。クエリはと痛みを伴って slowでした。MS Accessテーブルの索引付けされていない列の問合せパフォーマンスの改善

正規表現の素晴らしいパワーを使用して、私は他が速くそれを作ったが、それはまだ30を取って1 またはに見にそれを減らす。私は見てする必要があるNHSNumberの一つとHospitalNumberて作業することができますが良い一日に秒、時には長い。

私の質問はこれです。実行時間をより管理しやすいレベルに下げるために私が使用できるヒントやトリックはありますか?現実的な解決策を歓迎しますが、表を変更してはならないこと、既存のデータベースを比較的定期的に更新することを覚えておいてください(1日のデータは大したことではない週はアウト間違いなくので、ここでそれは、)

編集

クエリが要求されましたです。残念ながら、それはそのエキサイティングではありません。

SELECT [ConsID], [LabNumber], [HospitalNumber], [NHSNumber] 
FROM Samples 
WHERE [NHSNumber]="1234567890"; 
+1

元のテーブルにインデックスを追加するのはなぜオプションではないのかよくわかりません。機能の変更はありません。 – Andre

+0

実際のクエリを確認すると役に立ちます。 – Parfait

+0

@パフェット - それはエキサイティングではありませんが、そこに行く –

答えて

2

あなたは、既存のテーブルを変更するローカルテーブルにコピーし、検索列にインデックスを適用することができない場合。

これはすべて、更新が必要なときに実行できるコードで行うことができます。

1

VBAを使用して起動時にテーブルを開き、データベースが閉じられるまで開いたままにしておくと、パフォーマンスが大幅に向上するはずです。

関連する問題