PDA

View Full Version : مشکل کاهش سرعت در کوئری



disiba
یک شنبه 26 مهر 1394, 11:04 صبح
سلام
یک بانک اطلاعاتی sql دارم که حدودا 8000 رکورد داره . یکی از فیلدها تاریخ میلادی است . با استفاده از stored procedure از این جدول گزارش میگیرم . برای تبدیل تاریخ میلادی به شمسی در stored procedure از بک فانکشن استفاده میکنم . مشکل اینجاست که برای این تعداد رکورد حدود 15 ثانیه طول میکشه تا گزارش گیری انجام بشه در حالیکه اگه از فانکشن تبدیل تاریخ استفاده نکنم و بخوام تاریخ میلادی باشه ، زمان گزارش گیری خیلی کاهش پیدا میکنه (حدود 2 ثانیه) . دوستان چکار کنم که تاریخ فارسی رو داشته باشم ولی با زمان گزارش گیری کم ؟

یوسف زالی
یک شنبه 26 مهر 1394, 11:14 صبح
سلام.
با چه ماژولی تبدیل می کنید؟
در کدام رویداد این کار رو می کنید؟
هر دو رو جواب بدید.

disiba
یک شنبه 26 مهر 1394, 12:00 عصر
با یک فانکشن که توی دیتا بیس است عمل تبدیل تاریخ رو انجام میدم . با استفاده از کامپوننت storedproc پروسیجری رو در sql اجرا میکنم و اون پروسیجر برای تبدیل تاریخ از فانکشن استفاده میکند

ابوالفضل عباسی
یک شنبه 26 مهر 1394, 12:43 عصر
شما یک تابع تبدیل میلادی به شمسی در برنامه بگذار موقع ثبت رکورد تاریخ رو برحسب شمسی توی یه فیلد بریز با صدا بزن و تاریخ شمسی رو ذخیره کن.
بعد موقع گرفتن کوئری سرعتش بالاتر هست.

disiba
یک شنبه 26 مهر 1394, 12:52 عصر
با توجه به مشکلات تاریخ فارسی جهت محاسبات ، ترجیح میدم که میلادی ذخیره بشه

یوسف زالی
یک شنبه 26 مهر 1394, 14:03 عصر
یونیت من مشکل محاسبات تاریخ نداره. امضای من رو ببینید.
اگر می تونید تغییرات بدید از اون استفاده کنید.
اگر نمی تونید، استفاده این شکلی از توابع اس کیو الی کندی در پی داره، بهتره با استفاده از یک فیلد calculated سمت دلفی پیاده سازیش کنید. این طوری فقط چیزهایی که دیده می شه یا لازمه تبدیل می شوند.