PDA

View Full Version : time out expired



ArtCom
سه شنبه 12 تیر 1386, 08:33 صبح
سلام من یه query دارم که مدت زمان اجرای اون زیاده وقتی توی یه view این query رو run می کنم error: time out expired میده. من از sql sqerver سرور توی یه شبکه استفاده میکنم . max time out در properties سرور رو عوض کردم ولی فایده نداره ار توی دلفی هم command timeout رو توی adoconnection زیاد کردم ولی فایده نداشت.
آیا کار خاصی برای اجرای این view باید انجام بدم؟

AminSobati
سه شنبه 12 تیر 1386, 23:38 عصر
دوست عزیز آیا Query شما پیچیده هست؟ یا اگر ساده است، آیا تعداد رکورد زیادی برمیگردونه؟

ArtCom
چهارشنبه 13 تیر 1386, 07:20 صبح
آره میشه گفت پیچیده است یعنی توابع محاسباتی که صدا زده میشه پیچیده است توی توابع از CURSOR استفاده میشه و تعداد زیادی رکورد بر میگررونه. توی sql server 2005 جواب میده در مدت چند ثانیه ولی توی query analuzer 2000 چند دقیقه طول میکشه جواب بده.
با تشکر.

AminSobati
شنبه 16 تیر 1386, 00:49 صبح
در درجه اول باید Query رو تا جای ممکن بهینه کنین (و همچنین ایندکسها). در مرحله بعد مقدار timeout در سمت کلاینت رو افزایش بدین

ArtCom
یک شنبه 17 تیر 1386, 19:00 عصر
سلام ما timeout توی properties , sql server و common timeout رو توی adoconnection توی delphi هم عوض کردیم ولی فایده نداشت. مسئله ما اینه که سر 30 ثانیه این error داده میشه چه ما کوئری رو از توی خود sql اجرا کنیم چه از توی دلفی. ما میخواهیم بدونیم این 30 ثانیه دیگه کجا تعریف شده.
در ضمن ما تا اونجایی که میتونستیم بهینه نوشتیم و هر جا زمان timeout مشخص بوده تغییرش دادیم. میخواهیم بدونیم اصلا time out expired دلیل دیگه ای هم میتونه داشته باشه؟

AminSobati
یک شنبه 17 تیر 1386, 23:16 عصر
فکر میکنم 30 ثانیه زمان زیادی نباشه. دستورات خودتون رو در Query Analyzer اجرا کنین ببینین چقدر طول میکشه.

ArtCom
دوشنبه 18 تیر 1386, 13:18 عصر
این کار رو کردیم 1:14 ثانیه طول میکشه ولی سر 30 ثانیه error میده.

AminSobati
دوشنبه 18 تیر 1386, 22:19 عصر
پس هر چی هست به Client برمیگرده. در ADO (نسخه قبل از دات نت) مقدار Timeout در Connection تنظیم میشد که مقدار پیش فرض 60 ثانیه بود.