ورود

View Full Version : مشکل Time out دستورات



nasimsaba
یک شنبه 05 تیر 1390, 16:01 عصر
سلام
من دستوری نوشتم برای حذف رکوردهای تکراری از داخل جدولم.تعداد رکوردهای جدولم 150 هزارتاست و این دستور قبلا واسه 500 هزار رکورد جواب می داده ولی الان وقتی اجراش می کنم پس از مدتی این خطا رو میده
Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
The statement has been terminated.

به نطر شما مشکل چی میتونه باشه
دستوری هم که نوشتم اینه
Delete From [Amar] Where MainIden not In
(Select top 1 MainIden from [Amar] as MR1 where MR1.Tel2=Amar.Tel2
AND MR1.ProvinceName=Amar.ProvinceName
And MR1.cityName=Amar.cityName)

جالب اینجاست که وقتی بجای دستور Delete از دستور Select استفاده میکنم این خطا رو نمی ده و دستور به درستی اجرا میشه و تعداد رکوردهای تکراری رو میده

محمد سلیم آبادی
دوشنبه 06 تیر 1390, 04:37 صبح
چرا این دستور رو امتحان نمی کنی؟

;WITH Cte AS
(
SELECT *, rnk = ROW_NUMBER() OVER(PARTITION BY MainIden, Tel2, ProvinceName, CityName ORDER BY (SELECT 1))
FROM MainIden
)
DELETE FROM Cte
WHERE rnk > 1;