# پایگاه‌های داده > SQL Server > مدیریت دیتابیس (Database Administration) > Performance Tuning >  نحوه اجرای Paging در SQL

## Kia_MLS

با سلام
یکی از مشکلاتی که در پروژه های بزرگ با حجم داده بسیار زیاد باهاش روبرو هستم، نحوه اجرای Paging در نمایش نتیجه جستجو به کاربر است.
همانطور که روشن است، برای اجرای Paging نیاز به نمایش تعداد محدودی رکورد (مثلا 10 رکورد) از تعداد بسیار زیاد رکوردی که در نتیجه جستجو میتواند بیاید است.
مثلا فرض کنید نتیجه یک Query برابر 1 میلیون رکورد است که ما فقط 10 رکورد را به End User نمایش میدهیم. در صورتی که دکمه رفتن به صفحه بعد را زد از رکورد 11 تا 20 را نمایش میدهیم و ...

مشکل اینجاست که محاسبه تعداد کل رکوردها سربار محاسباتی داره. برای اینکه به کاربر بگیم این 10 رکورد از 1 میلیون رکورده، مجبوریم یک بار Count کل مجموعه رو حساب کنیم.
آیا در این زمینه راه حل بهینه تری وجود دارد؟
مثلا گوگل تعداد کل رکوردها را به صورت تخمینی به کاربر اعلام میکند. پیشنهاد شما چیست؟

----------


## hamid_hr

برای تعداد رکورد از این کوئری استفاده کنین. جداولی که تعداد رکوردا زیاده خیلی خوب عمل می کنه
select sum([rows]) from sys.partitions where object_id=object_id('TableName') and index_id in (0,1)

----------


## Kia_MLS

> برای تعداد رکورد از این کوئری استفاده کنین. جداولی که تعداد رکوردا زیاده خیلی خوب عمل می کنه
> select sum([rows]) from sys.partitions where object_id=object_id('TableName') and index_id in (0,1)


متشکرم. جالب بود.
اما Query روی یک View است که شرط های متفاوت و پیچیده ای هم در قسمت Where داره

----------

