PDA

View Full Version : دریافت داده های میلیونی از sql



sam166
شنبه 07 تیر 1393, 16:34 عصر
با سلام و خسته نباشید

در دیتابیس sql حدودا 35 میلیون رکورد وجود دارد.هر موقع که میخوام select بزنم Out Of Memory میده

به نظر شما چیکار کنم؟؟؟
چه روشی رو شما برای دریافت همه داده ها یشنهاد میکنید؟؟

ahmad156
شنبه 07 تیر 1393, 17:16 عصر
مسلماً شما 35 میلیون رکورد رو یکجا نمیخواین پس اون تعداد رو که نیاز دارین صدا کنین!

sam166
شنبه 07 تیر 1393, 17:35 عصر
همه رو میخوام ولی در صفحات 100 تایی نشون میدم

sam166
شنبه 07 تیر 1393, 17:40 عصر
در ضمن وقتی کوئری رو اجرا میکنم رم تا آخرش پر میشه
و وقتی کوئری تموم میشه دیگه رم خالی نمیشه به همون حالت میمونه و کل سرعت سرور رو میگیره!!!!

ahmad156
شنبه 07 تیر 1393, 17:49 عصر
دوست عزیز شما نمیخوای یکجا 35 میلیون رکورد رو نشون بدی.در ضمن 35 میلیون رکورد رو به GridView یا امثالهم بدی میپوکه.میدونی چقدر حجمش میشه؟
پس شما باید صفحه بندیتون رو دستی انجام بدین.قبلاٌ در موردش بحث شده.جستجو کنین پیدا میکنین!

salar_kian
شنبه 14 تیر 1393, 12:58 عصر
سلام
منهم همین مشکل رو دارم!
به قول دوستمون ahmad156
نمیشه همش رو انتخاب کرد! کلی مشکل پیدا میشه
راستش من میخوام جستجو بکنم!
ولی واقعاً سیستم جواب نمیده! حتی ایندکس هم کردم! بر اساس شماره میخوام جستجو کنم خیلی طول میکشه که پیدا کنه! منظورم از خیلی 10 یا 20 دقیقه نیست! خیلی!!!!
کسی هست کمکی کنه؟
ممنون میشم

ahmad156
شنبه 14 تیر 1393, 16:30 عصر
دوست عزیز.مطمئناً شما برای 35 میلیون رکورد باید سرور اختصاصی داشته باشین.
نهایت زمانی که باید بابت این تعداد رکورد در سنگین ترین کوئری ها صرف بشه نباید بیشتر از چند ثانیه باشه والّا مشکل از جای دیگه هست

demolition
شنبه 14 تیر 1393, 18:16 عصر
با سلام و خسته نباشید

در دیتابیس sql حدودا 35 میلیون رکورد وجود دارد.هر موقع که میخوام select بزنم Out Of Memory میده

به نظر شما چیکار کنم؟؟؟
چه روشی رو شما برای دریافت همه داده ها یشنهاد میکنید؟؟

از این روش (http://www.aspsnippets.com/Articles/Custom-Paging-in-ASP.Net-GridView-using-SQL-Server-Stored-Procedure.aspx) استفاده کنید

My_LoVe_IRAN
یک شنبه 15 تیر 1393, 15:18 عصر
با سلام و خسته نباشید

در دیتابیس sql حدودا 35 میلیون رکورد وجود دارد.هر موقع که میخوام select بزنم Out Of Memory میده

به نظر شما چیکار کنم؟؟؟
چه روشی رو شما برای دریافت همه داده ها یشنهاد میکنید؟؟
سلام
شما نموتونین همه داده ها رو یکجا دریافت کنین ،بهتره تیکه تیکه این کار رو بکنین !
فکر کنین بخاین 10 صفحه رو که تو هر صفحه 100 تا سطر هست به کاربر نشون بدین ،خب این میشه 1000 تا سطر که باید لود بشن و نمایش بدن ،اگر کاربر رفت صفحه بعدی رو ببینه شما 1000 تای بعدی رو لود کنین !!! حتی اگر بزنه صفحه 200 شما نیازه که صفحه 195تا 205 رو لود کنین !!
من این کار رو برای 10 میلیون رکورد کرده بودم و جواب داده بود ،بازم به خودتونه که دوست دارین چطور نمایش بدین !!!

itloveh
دوشنبه 16 تیر 1393, 00:03 صبح
دوست گرامی این 35 میلیون رکورد ،هر رکورد دارای چند فیلد می باشد؟

Mishtolak
دوشنبه 16 تیر 1393, 18:22 عصر
درود و ادب
اگر بانک اطلاعاتی شما SQL هست بهترین روش استفاده از پیجینگ سمت سرور هست

موید باشی