PDA

View Full Version : سوال: حذف داده هاي يك جدول با ركوردهاي فراوان



as_re63
یک شنبه 17 آذر 1387, 13:05 عصر
با سلام .
چگونه مي توان يك جدولي در حدود 1000000ركورد را با شرايط خاص ركوردهايش را حذف نمود اين كار را با دستور ...delete...where انجام دادم خطاي timeout اعلام ميشود

با تشكر

s_ahmadneya
یک شنبه 17 آذر 1387, 14:06 عصر
سلام برای کار با داده ها زیاد باید از pageبندی استفاده کرده به این صورت که داده ها یت را بصورت گروه گروه نمایش ویا حذف و ... نمایید.
بعبارتی برای کار بالا شما باید در شرط خود طوری برنامه ریزی نمایید که هر بار تعداد معدودی از داده ها حذف شود .
البته شما می توانید تایم اوت را در بانکتان افزایش دهید که زیاد اصولی نیست

MajerajooyeKhallagh
یک شنبه 17 آذر 1387, 15:03 عصر
آیا جدولتان ایندکس هم داره؟

اگر ندارد,برای آن ایندکس تعریف کنید و فیلدی را که در شرط where شما استفاده میشود را به عنوان ایندکس تعریف کنید تا سرعت اجرای کواری شما بالا برود و کواری شما مجبور به اسکن کل جدول و داده های درون آن نباشد

AminSobati
یک شنبه 17 آذر 1387, 23:26 عصر
ضمن تایید پست قبلی، این نکته رو اضافه کنم چنین دستوراتی که زمان زیادی صرف میکنند، باید از طریق TSQL دستورش صادر بشه و از محیطهای Graphical مثل Management Studio یا Enterprise Manager استفاده نکنید چون Timeout میدن

amin_alexi
دوشنبه 18 آذر 1387, 08:29 صبح
ضمن تایید پست قبلی، این نکته رو اضافه کنم چنین دستوراتی که زمان زیادی صرف میکنند، باید از طریق TSQL دستورش صادر بشه و از محیطهای Graphical مثل Management Studio یا Enterprise Manager استفاده نکنید چون Timeout میدن
این امکان وجود داره در این محیطها Query Time Out رو افزایش داد !؟
من تو قسمت option هنگام Connectشدن به سرور در 2008 در تب Connection Properties یک گزینه به نام Execution time out وجود داره که این صفره ( یعنی بدون محدودیت زمان !!!)
آیا این همونجاست که زمان Query برای اجرا داده میشه !؟

ar.shirazi
دوشنبه 18 آذر 1387, 15:31 عصر
این امکان وجود داره در این محیطها Query Time Out رو افزایش داد !؟
من تو قسمت option هنگام Connectشدن به سرور در 2008 در تب Connection Properties یک گزینه به نام Execution time out وجود داره که این صفره ( یعنی بدون محدودیت زمان !!!)
آیا این همونجاست که زمان Query برای اجرا داده میشه !؟
خیر دوست عزیز
منظور این است که شما از طریق یک محیط دیگر (مانند کامند پرامت) یا مشابه آن استفاده کنید و کوئری مورد نظر را خودتان بنویسید.
نه این که از امکانات ویژوال و .. استفاده کنید.

البته صدها نکته بهینه سازی دیگر نیز وجود دارد که باید دید کوئری شما چیست .