سلام رفقا
امروز بعد از تقریبا 2 سال مجدد تو این تاپیک اومدم ، تقریبا 2 سال پیش با استفاده از کدی که کاربر Linux گزاشته بود تو برنامه هام شروع به کار کردم و کد بسیار سریع و خوب اجرا میشه .
تقریبا میشه گفت هیچ مشکلی باهاش ندارم
بزرگترین ویو ما که اطلاعات کل سیستم رو نشون میده 32 هزار رکورد داره که با لحاظ کردن Union All حدود 30 جدوم و سورت بر روی فیلد تاریخ و تبدیل تاریخ میلادی به شمسی حدود 2 ثانیه طول میکشه که تمام داده ها رو لود کنه .

و اما منظورم من از ارسال این پست ، نکته ای که به نظرم رسید میتونه مفید باشه اینه که در اکثر موارد داد های من و اکثر کاربران دیگر بصورت ذیل است :

01/01/2001
01/01/2001
01/01/2001
01/01/2001
01/01/2001
01/01/2001
...
02/01/2001
02/01/2001
...
10/10/2001

اگر کمی دقت کنید میتوانیم این تابع را کمی بهینه تر کنیم ، بدین معنی که برای رکورد اول تابع تبدیل تاریخ را انجام بدهد و برای رکوردهای بعدی اگر تاریخ نیاز به محاسبه داشت مجدد این محاسبه انجام شود در غیر این صورت تاریخ محاسبه شده در رکورد قبلی بازیابی شود .

نمیدانم توانستم منظورم را برسانم یا نه ؟

اینگونه فرض کنید برای تاریخ 15/01/2010 این تابع را فراخوانی کرده ایم و این تابع محاسبات را انجام میدهد و در رکورد بعدی هم همین تاریخ (که در رکورد قبلی یک بار تبدیل شده بود) را باید مجدد تبدیل کنیم ، حال اگر بتوانیم مقدار تاریخ قبلی را در متغییری قرار دهیم مشکل رفع میگردد .

یعنی نیاز داریم در تابع 2 مقدار را ذخیره کنیم و بتوانیم در فراخوانی بعدی این مقادیر را بخوانیم ، یعنی یک چیزی تو مایه های متغییر های Static در C


به این شکل تقریبا میشه گفت سرعت تابع بیش از 2 برابر میشود