سلام دوستان.من برای یک پروژه داخل شرکت باید یا استفاده از php یک سری stored procedure از اوراکل کال کنم. مشکل وقتی پیش میاد که حجم داده خیلی بالا میشه . در خیلی موارد درست هست و خوب کار میکنه ولی در چندین مورد که تعداد رکوردها زیاد هست و بالای هفت هشت هزار رکورد در هر درخواست هست به مشکل میخورم و چیزی بهم نشون نمیده و خطا میده.
داخل خود اوراکل وقتی کویری رو اجرا میکنیم حدود 10 ثانیه میشه ولی داخل وب سایت نمیتونه و خطا میده. همه داده ها با هم بر میگردن و من نمیتونم داخل استورپروسیجر دست ببرم
بنظرتون چیکار بایدبکنم
سلام ممکنه بدلیل اینکه طول میکشه timeout بده و متوقف بشه .
چه خطایی میده شما اول لطف کن خطا رو بفرست تا بقیه بتونن کمک کنند تشکر
بله خطای تایم اوت میده
یعنی حجم داده بشدت زیاده و نمیتونه بگیره
تنها راهی که به ذهنم مبرسه اینه که استور پروسیجر ها رو تغییر بدیم و پیج بندی شده برکردونیم
@alif عزیز بهتر نیست بجای پیدا کردن راه حل این مشکل، از رویه های بهتر و بهینه تری استفاده کنید؟
@alif سلام
شما حجم عظیمی از داده که حدود 7 الی 8 هزار رکورد است، دارید،
یا فقط قصد نمایش این دادهها را دارید، که این کار ازنظر من اشتباه است. اگر شما بخواهین اطلاعات را جهت بازدید مدیران و یا کارشناسان امر استفاده کنید، بهطور قاطع به شما خواهم گفت که هیچ مدیر و مسئولی وقت خودش رو صرف پیمایش این تعداد رکورد نخواهد کرد، مدیر یا مسئول نیازمند دادههای خام نیست. و یا شما خواهان این هستین که اطلاعات را در معرض عموم قرار بدید، که این کار نیز اشتباهه و میتونه برای شما تبعانی نیز دربر داشته باشه.
پیج بندی هم در این مورد کار بهینهای نیست، چون برفرض نمایش تعداد 100 رکورد در هر پیج، شما حدود 70 پیج خواهید داشت، که مطمئناً هیچ فردی این تعداد پیج را مشاهده نخواهد کرد.
در کل شما با فرایندها فوق، حجم عظیم دادهای را از دیتابیس دریافت میکنید که خیلی از این دادهها کاربرد ندارد و فقط منابع سرور شما را اشغال میکند.
مورد بعدی اینکه شما بخواهید در سمت php اقدام به پردازشهایی همچون ، فیلتر کردن اطلاعات، مرتبسازی و محاسبات مختلف بر رویدادههای خام، بهدستآمده از دیتابیس، کنید. این کار نیز اشتباه است. وقتی خود اوراکل توانایی پیمایش این حجم عظیم دیتا را نهایتاً در 10 ثانیه دارد، مطمئناً پردازشهایی با تعداد رکوردهای کمتر در زمانهای بسیار کمتری انجام خواهد داد. فقط شما بایستی پروسیجرهای هدفمندتری ایجاد و استفاده کنید.
در آخر اگر شما همچنان اسرار بر فراخوانی این تعداد داده از دیتابیس و نمایش آنها بر بستر وبدارید، پیشنهاد من استفاده از فریمورک های جاوا همچون Spring به علت هماهنگی بیشتر آن با اوراکل و همچنین پرفورمنس بالای آن، با دادههای عظیم است.
امیدوارم پیشنهاداتم مفید بوده باشه
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟