- هر آنچه که در مورد NET 5. باید بدانید
- بهترین نکات سئو برای وبسایت ASP.NET
- چطور یک برنامه وب پیشرونده (PWA) با استفاده از React بسازیم
- 10 دستور مهم Git که هر توسعهدهندهای باید بداند
- نکاتی برای فریلنسر شدن به عنوان برنامهنویس
- بهترین IDEهای پایتون در سال 2020
- 10 ابزار چت برای ارتباط بهتر تیم
- 5 روش برای انجام تست ها در روش توسعه agile با استفاده از flagهای ویژگی
- 3 گام برای موفقیت در طراحی معماری کلود
- MEAN stack در اپلیکیشن های تحت وب جاوا اسکریپت چیست؟
با درود ...
من یک بخشی در سیستم امکان Export دارم که بنا بر درخواست های چندین ساله امکانات خاص زیادی داره. یک ازونها این هست که بطور مثال در خروجی گرفتن برای اکسل کاربر میتونه یک کوئری رو که دیتاست مربوط به اون طبق کوئری مثلاً 5 تا فیلد داره رو بیاد یک نگاشت (Map ) ایجاد میکنه و لا به لای فیلدهای Select شده فیلدهای دلخواه ( تغییر ردیف و اولویت نمایش فیلد ، متن دلخواه ، Delimiter ، فرمول اکسل و غیره ...) اضافه میکنه. یعنی خروجی نهایی ممکنه با اونچه که در Select بوده متفاوت باشه و در RunTime باید خروجی رو اصلاح کرد و همزمان در فایل (بطور مثال اکسل) نوشت ، برای پیاده سازی این مورد با توجه به اینکه همه ی موارد خواسته شده از کاربرا رو نمیشد در SQL پیاده کرد مجبور شدم کوئری رو اجرا کنم وموقع نوشتن در فایل تغییرات رو انجام بدم .
در حلقه ای که از دیتای اصلیِ برگشته از کوئری دارم برای هر رکورد دیتا باید کل جدول نگاشت بررسی و اعمال بشه و دلیلش هم این هست که در نوشتن در خروجی (بطور مثال اکسل ) خروجی رکورد به رکورد درج میشه که Map رو در یک لیست نگهداشتم و این بخش بسیار سریع عمل میکنه اما پیمایش خود دیتاستِ شامل دیتا کند هست.سوالم این هست که برای پیمایش و Pars کردن رکورد به رکورد دیتاست چه روشی سریع ترین و به اصطلاح best practice هست؟
چه راه حلی وجود داره که سرعت رو افزایش بدم؟از Recordset به جای دیتاست استفاده کردم و DisableControls هم کردم اما اینا کافی نیست و اگر Pars رکورد به رکورد اتفاق نیفته بطور مثال برای 140000 رکورد کسری از ثانیه Export میگیره ولی با بررسی رکور به رکورد میشه 25 دقیقه...!
در صورتیکه هر بررسی و در واقع هر دور حلقه ی اصلی هم در کسری از میلی ثانیه داره اتفاق میفته اما کل کار بشدت کند میشه...پیشاپیش سپاس...