PDA

View Full Version : مشکل در سرعت اکسس و ADOQuery



mohsen57
جمعه 24 اسفند 1386, 14:31 عصر
فرض کنید در دیتابیس من یک میلیون یوزر وجود داره حالا می خوام صد هزارتا یوزر دیگه رو که در یک ListBox وجود دارد را با استفاده از ADOQuery در این بانک Add کنم ولی چون می خوام یوزر تکراری Add نشه با استفاده از کد زیر چک می کنم که آیا این یوزر در بانک وجود دارد یا نه. اگه وجود نداشت Add میکنه که در این حالت سرعت وحشتناک پایین میاد! چه راه حلی وجود داره؟



for i:= 0 to ListBox1.Count - 1 do
if not ADOQuery1.Locate('Users', ListBox1.Items.Strings[i], [loPartialKey]) then
ADOQuery1.AppendRecord(ListBox1.Strings[i], TRUE]);

vcldeveloper
جمعه 24 اسفند 1386, 15:53 عصر
بجای اینکه 1 میلیون رکورد رو در حافظه کلاینت بارگزاری کنید و خودتون نام های تکراری را جستجو کنید، می تونید یک Unique Index رو فیلد مربوط به نام بزارید تا خود بانک مانع از درج نام های تکراری بشه.

mohsen57
جمعه 24 اسفند 1386, 23:06 عصر
چجوری این کار رو انجام بدم؟

vcldeveloper
جمعه 24 اسفند 1386, 23:18 عصر
توی مشخصات فیلد مربوطه خصوصیت Indexed را مساوی Yes (No Duplicates) i قرار بدید.