PDA

View Full Version : Out Of Memory در AdoQuery



Delphi 2010
پنج شنبه 27 فروردین 1394, 06:51 صبح
با عرض سلام و خسته نباشید خدمت همه دوستان

وقتی اطلاعات زیادی داخل دیتابیس باشه (حدود 2.000.000 رکورد) می خوایم با AdoQuery اطلاعات رو حذف کنیم بعضی اوقات پیغام Out of Memory میده و بعضی اوقات TimeOut میده

چیکار باید بکنم که با این طور پیغام ها مواجه نشم و عملیات حذف به درستی انجام بشه

ممنون از راهنمایی همه دوستان

golbafan
پنج شنبه 27 فروردین 1394, 08:38 صبح
سلام شما چه query میزنید؟

- میتونید زمان پاسخ CommandTimeout رو افزایش بدید...
- میتونید جدول رو حذف کرده و مجدد تولید کنید
- از ado استفاده نکنید قدیمی شده

http://www.oledbdirect.com/index.php

benyaminrahimi
یک شنبه 30 فروردین 1394, 18:08 عصر
کامپوننت هایی نظیر firedac و نیز unidac خاصیت fetch rows دارند که میتونید صفحه بندی به دلخواه انجام بدبد و مدیریت حافظه خوبی داشته باشید اگه این امکان رو ندارید با یه temp table و tored procedure حذف انجام بدبد

یوسف زالی
یک شنبه 30 فروردین 1394, 18:16 عصر
شما در هنگام حذف خطای out of memory میگیرید؟ نکنه با ADOTable جذف رو انجام می دید؟
برای همچین حجمی حتما باید paging انجام بدید. برای سرعت بالاتر index گذاری رو فراموش نکنید.
timeout اشیا رو هم به راحتی می تونید افزایش بدید.
این تعداد ردیف معمولا مشکلی بوجود نمیاره اگر درست select بشه.
بنده با حجم های خیلی خیلی بیشتر کار کردم و با همین ADO هم کار کردم و بدون مشکل کار کرده. البته زمان گرفتن کوئری به خیلی چیزا بستگی داره. مثلا برای یکی از کوئری های من 3 دقیقه بسیار عالی محسوب می شه. اما برای کوئری های دیگه ممکنه فاجعه باشه.

توصیه من کامپوننت خاصی نیست، هر کامپوننتی مزایای خودش و معایب خودش رو داره.
ولی با ADO هم می تونید همین کار رو انجام بدید. کامپوننت های معرفی شده هم خوب هستند. اگر زمانش رو دارید یک تست بگیرید و بهترین رو انتخاب کنید.

Delphi 2010
شنبه 19 اردیبهشت 1394, 13:50 عصر
سلام علیکم
عذر میخوام
عملیات Paging چطوری انجام بدم؟
Index گذاری رو بر چه اساسی انجام بدم و چگونه؟
همه کارهای بنده با Adoquery هستش

در ضمن بعضی مواقع وقتی توی RichEdit فایلی رو لود می کنم پیغام Out of Memory می گیرم، این رو چیکار باید کرد؟

benyaminrahimi
دوشنبه 21 اردیبهشت 1394, 10:48 صبح
اگه امکان تعویض کامپوننت ندارید با top ...percent کوعری رو محدود کنید