PDA

View Full Version : سوال: راه مناسب برای شمردن رکوردها



Kingali
چهارشنبه 08 دی 1389, 01:07 صبح
توی بانک یه سری رکورد شرکت‌های مختلف هست که یه فیلد شهر دارن. حالا میخوام لیست تمام شهرها رو بذارم و تعداد شرکت‌های موجود در هر شهر رو بزنم جلوش. ولی به خاطر اینکه تعداد رکوردها خیلی زیاد هست، هربار شمردن شرکت ها با استفاده از دستور Count در SQL خیلی طول می کشه و صفحه دیر بالا میاد. میخواستم بدونم راه دیگه ای هست که این عمل رو زودتربشه انجام داد؟

mtorabi
چهارشنبه 08 دی 1389, 03:36 صبح
توی بانک یه سری رکورد شرکت‌های مختلف هست که یه فیلد شهر دارن. حالا میخوام لیست تمام شهرها رو بذارم و تعداد شرکت‌های موجود در هر شهر رو بزنم جلوش. ولی به خاطر اینکه تعداد رکوردها خیلی زیاد هست، هربار شمردن شرکت ها با استفاده از دستور Count در SQL خیلی طول می کشه و صفحه دیر بالا میاد. میخواستم بدونم راه دیگه ای هست که این عمل رو زودتربشه انجام داد؟

نیاز به توضیح بیشتر داره دوست خوبم...
اول اینکه سرعت یک پارامتر نسبی است . شما باید طبعا کد sql خودت رو می ذاشتی تا بشه اظهار نظر کرد از این سریعتر هم امکان داره یا نه
اما سریعترین حالت جستجو برای این مسئله استفاده از query زیر هست

SELECT city, COUNT(company) AS NO
FROM tbCompany
GROUP BY cityبا این روش شما تنها یک بار کل دیتابیس را جستجو کرده و مقادیر مورد نیاز رو کسب می کنی. مابقی تغییرات در سطح کد نویسی اعمال خواهد شد که زمان گیر نخواهد بود
دوم چون زمان پردازش script ها زیاد به چشم نمی یاد باید تمرکزت رو برای افزایش سرعت رو فرایند جستو قرار بدی اما این به اون معنی نیست که از اونها غافل بشی

پس فکر کنم اگه از query بالا استفاده می کردی و باز هم می خواستی سریعتر باشه بخشی از کدت رو باید بذاری تا راحتر بشه کمک کرد
موفق باشی