PDA

View Full Version : دستورات جایگزین DLookup و DSum و ...



sadegh1944
سه شنبه 08 مهر 1399, 14:47 عصر
وقتی که تعداد رکوردهای جدول بسیار بالا باشه استفاده از دستورات DLookup و DSum و ... بویژه بصورت شرطی، در اجرای کوئری یا گزارش، باعث میشه پردازش اطلاعات خیلی طول بکشه. میخواستم ببینم دستورات جایگزینی برای اینها از جمله از طریق SQL وجود داره یا خیر.
کسانی که واردتر هستند یکم توضیح بدن علت بالا رفتن زمان پردازش چیه.
من فایلی با 12000 رکورد دارم که هنگام استفاده از دستور DLookup زمان پردازش آن حدود 20 دقیقه طول میکشه، البته با تغییر دستور و استفاده از if مشکل رو حل کردم. اگر دستوراتی هست که این مشکل رو نداشته باشه بویژه برای جمع شرطی (SUM) اعلام کنید.

eb_1345
سه شنبه 08 مهر 1399, 21:16 عصر
وقتی که تعداد رکوردهای جدول بسیار بالا باشه استفاده از دستورات DLookup و DSum و ... بویژه بصورت شرطی، در اجرای کوئری یا گزارش، باعث میشه پردازش اطلاعات خیلی طول بکشه. میخواستم ببینم دستورات جایگزینی برای اینها از جمله از طریق SQL وجود داره یا خیر.
کسانی که واردتر هستند یکم توضیح بدن علت بالا رفتن زمان پردازش چیه.
من فایلی با 12000 رکورد دارم که هنگام استفاده از دستور DLookup زمان پردازش آن حدود 20 دقیقه طول میکشه، البته با تغییر دستور و استفاده از if مشکل رو حل کردم. اگر دستوراتی هست که این مشکل رو نداشته باشه بویژه برای جمع شرطی (SUM) اعلام کنید.

سلام
این مدت زمان پردازش این تعداد رکورد غیر معمولیه . باید بررسی نمود که به چه صورتی از این دو دستور استفاده شده .
شما لطف کنید آن کوئری با جدول یا جداول مربوطه اش در اینجا قرار بدهید تا بیشتر بررسی شود . اگر اطلاعات محرمانه است سعی کنید نام فیلد ها رو تغییر بدهید و اسامی خاص رو با اسامی ای فرضی جایگزین کنید.

padide55
سه شنبه 08 مهر 1399, 21:49 عصر
سلام‌
من هم فکر میکنم غیر معموله
من یه فرم دارم که نام کالا رو پس از ورود کد کالا با dlookup
میاره
باوجودی که ۵۰۰۰۰۰رکورد دارم .کسری از ثانیه لود میکنه .

padide55
چهارشنبه 09 مهر 1399, 19:59 عصر
__________________

mazoolagh
پنج شنبه 10 مهر 1399, 13:14 عصر
وقتی که تعداد رکوردهای جدول بسیار بالا باشه استفاده از دستورات DLookup و DSum و ... بویژه بصورت شرطی، در اجرای کوئری یا گزارش، باعث میشه پردازش اطلاعات خیلی طول بکشه. میخواستم ببینم دستورات جایگزینی برای اینها از جمله از طریق SQL وجود داره یا خیر.
کسانی که واردتر هستند یکم توضیح بدن علت بالا رفتن زمان پردازش چیه.
من فایلی با 12000 رکورد دارم که هنگام استفاده از دستور DLookup زمان پردازش آن حدود 20 دقیقه طول میکشه، البته با تغییر دستور و استفاده از if مشکل رو حل کردم. اگر دستوراتی هست که این مشکل رو نداشته باشه بویژه برای جمع شرطی (SUM) اعلام کنید.

دلیل اصلی این هست که این توابع نیاز دارن جدول به طور کامل لود بشه، بنابراین در محیط شبکه و در کوئری هایی که جدول link شده دارن روی پرفورمنس اثر منفی داره.
در کاربردهای عادی و جدول لوکال مشکلی نیست.
همینجور که دوستان اشاره کردن قطعا مشکل طراحی هست.

sadegh1944
شنبه 12 مهر 1399, 14:19 عصر
دلیل اصلی این هست که این توابع نیاز دارن جدول به طور کامل لود بشه، بنابراین در محیط شبکه و در کوئری هایی که جدول link شده دارن روی پرفورمنس اثر منفی داره.
در کاربردهای عادی و جدول لوکال مشکلی نیست.
همینجور که دوستان اشاره کردن قطعا مشکل طراحی هست.
بله فایل من دو قسمتی و جداول اون بصورت لینک شده است
البته در دستور DLookup مشکل زیادی ندارم ولی با دستور Dsum وقتی میخوام از طریق کوئری عملیات جمع با یک شرط را بروی رکوردها و فیلدها اعمال کنم چون رکوردها زیاد هست پردازش اون زیاد طول میکشه، برای همون میخواستم ببینم دستوری بجز Dsum برای انجام جمع شرطی وجود داره که این مشکل رو نداشته باشه

padide55
شنبه 12 مهر 1399, 14:57 عصر
سلام
این مدت زمان پردازش این تعداد رکورد غیر معمولیه . باید بررسی نمود که به چه صورتی از این دو دستور استفاده شده .
شما لطف کنید آن کوئری با جدول یا جداول مربوطه اش در اینجا قرار بدهید تا بیشتر بررسی شود . اگر اطلاعات محرمانه است سعی کنید نام فیلد ها رو تغییر بدهید و اسامی خاص رو با اسامی ای فرضی جایگزین کنید.

نمونه فایل بگذارید برای بررسی دوستان.

eb_1345
شنبه 12 مهر 1399, 15:00 عصر
نمونه فایل بگذارید برای بررسی دوستان.

البته جناب padide55 (https://barnamenevis.org/member.php?263869-padide55) منظورشون استارتر تاپیکه که نمونه فایل بگذارند؟!