PDA

View Full Version : مشکل در اجرای query در Dbisam



ALIreza_nil
شنبه 29 بهمن 1384, 22:47 عصر
با سلام


من یک نرم افزاری تهیه کردم که اطلاعات کارمندان یک شرکت را نگهداری می کنه مثل پرونده و مرخصی و ......که حدود 500 نفر هستند

مشکل اینجا به وجود می آید که برای گزارش گیری از یک جدول مرخصی که حدود 1200 تا رکورد داره
حدود 10 ثانیه با پنتیوم 4 طول می کشنه من روی یک فیلد شماره پرسنلی هم در زمان ساخت جدول index ایجاد کرده ام ولی به مرور زمان این زمان افزایش می یابد که میترسم این زمان خیلی طولانی تر شود

من از dbisam ver 4.7 استفاده می کنم دستورم هم اینه یک کامپونت query روی فرم می گذارم و در زمان اجرای نرم افزار تحت یک کلید این دستور را می دهم
query1.active:=false
...
select * from main_off
query1.active:=true



با تشکر لطفا راهنمائی بفرمائید

MNosouhi
یک شنبه 30 بهمن 1384, 02:50 صبح
من با یه جدول 25 فیلدی دارای 3000 رکورد تست کردم . زمان Active شدن جداول و زمان گزارشگیری هر دو زیر 1 ثانیه هستش . 10 ثانیه خیلی زیاده. حتما یه جای کار اشتباه کردی . مطمئنی RequestLive رو True کردی؟

ALIreza_nil
جمعه 05 اسفند 1384, 22:51 عصر
فکر می کنم فعال کرده باشم اصلا باید فعال باشه یا نه و اگه آره دلیلش چیه
و اگه ممکنه راجع به ایندکس گذاری یه توضیح بده آیا تاثیری داره یاه نه و روش صحیح ایندکس گذاری چطوری است

مهدی کرامتی
جمعه 05 اسفند 1384, 23:03 عصر
بهتره روی فیلدهای اصلی جداول تون هم ایندکس بگذارید.

MNosouhi
شنبه 06 اسفند 1384, 07:35 صبح
اولا باید RequestLive رو True کنی(پیش فرضش False هستش) . اما در مورد ایندکس ها اولین گزینه برای اینکس گذلری کلید اصلی برنامت هستش. اگر قرار روی فیلد یا فیلدهای خاصی جستجو انجام دهی بهتره روی اون فیلد یا فیلدها ایندکس تعریف کنی.
یه مطلب دیگه اینکه اگه رو جدولت پاسورد بزاری سرعت پایین میاد( که البته طبعیه).

MNosouhi
شنبه 06 اسفند 1384, 07:42 صبح
در ضمن طبق راهنمای Dbisam توابعی مانند Optimize و Verify در مجموع باعث افزایش سرعت میشن.