〜84列と〜280k行の大きな古いMS Access表があります。これらの列のうち3つはLabNumber
(索引付け)、HospitalNumber
(索引付けされていない)、およびNHSNumber
(索引付けされていない)です。 LabNumber
の値を検索する用語については、HospitalNumber
とNHSNumber
を検索したいと思います。定期的に使用されるプロダクションデータベースなので、テーブルはとなる必要があります。はです。ああ、データベースはネットワーク経由でアクセスされています。クエリはと痛みを伴って slowでした。MS Accessテーブルの索引付けされていない列の問合せパフォーマンスの改善
正規表現の素晴らしいパワーを使用して、私は他が速くそれを作ったが、それはまだ30を取って1 またはに見にそれを減らす。私は見てする必要があるNHSNumber
の一つとHospitalNumber
て作業することができますが良い一日に秒、時には長い。
私の質問はこれです。実行時間をより管理しやすいレベルに下げるために私が使用できるヒントやトリックはありますか?現実的な解決策を歓迎しますが、表はを変更してはならないこと、既存のデータベースはを比較的定期的に更新することを覚えておいてください(1日のデータは大したことではない週はアウト間違いなくので、ここでそれは、)
編集
クエリが要求されましたです。残念ながら、それはそのエキサイティングではありません。
SELECT [ConsID], [LabNumber], [HospitalNumber], [NHSNumber]
FROM Samples
WHERE [NHSNumber]="1234567890";
元のテーブルにインデックスを追加するのはなぜオプションではないのかよくわかりません。機能の変更はありません。 – Andre
実際のクエリを確認すると役に立ちます。 – Parfait
@パフェット - それはエキサイティングではありませんが、そこに行く –