2 ضمیمه
تفاوت زمان اجرای Store Procedure
سلام دوستان
یک استور پروسیجر دارم در SQL SERVER.
هر دو دقیقه یک بار آن را در یک ویندوز سرویس اجرا میکنم. (از FireDac استفاده میکنم)
قبلا مشکلی نداشتم اما ناگهان از دیروز! دیدم زمان اجرای پروسیجر از حدود یک ثانیه به حدود 60 ثانیه! رسیده!
من در خود استور پروسیجر زمان را لاگ میگیرم و نه در ویندوز سرویس.
برای تست در SSMS پروسیجر را اجرا کردم. هم در کامپیوتر خودم و هم در سرور حدود یک ثانیه شد!
سرویس را ری استارت کردم، باز هم درست نشد!
البته سرور را فعلا نمیتوانم ری استارت کنم
به نظر شما با توجه به اینکه لاگ زمان در خود استور پروسیجر است مشکل از کجا میتواند باشد؟
ضمیمه 156243
ضمیمه 156244
نقل قول: تفاوت زمان اجرای Store Procedure
سلام خب چه ارتباطی به دلفی داره؟ تالار اس کیو ال بپرسید
نقل قول: تفاوت زمان اجرای Store Procedure
نقل قول:
نوشته شده توسط
یوسف زالی
سلام خب چه ارتباطی به دلفی داره؟ تالار اس کیو ال بپرسید
توی SQL و SSMS مشکلی نداره! وقتی پروسیجر توی برنامه ویندوز سرویسی که در دلفی نوشته ام اجرا میشه، کند میشه!
نقل قول: تفاوت زمان اجرای Store Procedure
معمولا وقتی چیزی رو از اس کیو ال ریترن می کنید، در پارامتری به نام Return_Value@ کوئری داریدش و نیازی نیست دوباره سلکتش کنید، و به همین دلیل جای Open فقط اون رو Execute کنید
نقل قول: تفاوت زمان اجرای Store Procedure
نقل قول:
نوشته شده توسط
یوسف زالی
معمولا وقتی چیزی رو از اس کیو ال ریترن می کنید، در پارامتری به نام Return_Value@ کوئری داریدش و نیازی نیست دوباره سلکتش کنید، و به همین دلیل جای Open فقط اون رو Execute کنید
عکس اول (زمینه سفید) تمپلیت خود SQL server Management Studio است.
عکس دوم مربوط به دلفی است که این کامنت شما بهش وارد نیست!
نقل قول: تفاوت زمان اجرای Store Procedure
الان JobID همون RC@ نیست؟
نقل قول: تفاوت زمان اجرای Store Procedure
و یک سوال دیگه، تریس که می کنید دقیقا خط مربوط به اوپن طول می کشه؟
نقل قول: تفاوت زمان اجرای Store Procedure
نقل قول:
نوشته شده توسط
یوسف زالی
الان JobID همون RC@ نیست؟
پروسیجر INSERT_LANTEK در واقع در یک دیتابیس دیگر دنبال یک رکورد جدید میگردد و در صورتی که رکورد جدید وجود داشت، آی دی آن، در غیر این صورت مقدار صفر را بر میگرداند
نقل قول: تفاوت زمان اجرای Store Procedure
نقل قول:
نوشته شده توسط
یوسف زالی
و یک سوال دیگه، تریس که می کنید دقیقا خط مربوط به اوپن طول می کشه؟
بلی
البته چون برنامه به صورت سرویس است و تریس آن مشکل است، با لاگ گرفتن زمان طی شده آن را متوجه میشوم
نقل قول: تفاوت زمان اجرای Store Procedure
با این کد که داخل پروسیجر است لاگ میگیرم. WriteLog پروسیجر دیگری است برای لاگ گرفتن.
SET @ElapseFirst=SYSDATETIME()
-- کد های اصلی
SET @LogText=N'TEST LastDate Time='+CAST(DATEDIFF(MILLISECOND,@ElapseFirst,SYSD ATETIME()) as nvarchar)
EXECUTE dbo.WriteLog @Description=@LogText
نقل قول: تفاوت زمان اجرای Store Procedure
به این دلیل پرسیدم که به اتصال به دیتابیس مشکوک هستم نه ران شدن کوئری
ممکنه اتصال طول بکشه نه ران کردنش
نقل قول: تفاوت زمان اجرای Store Procedure
نقل قول: تفاوت زمان اجرای Store Procedure
فعلا خود به خود خوب شد! البته متاسفانه نفهمیدم مشکل از چه چیزی بود!
سرور هم هنوز ری استارت نشده!