PDA

View Full Version : اجراي كرسر و خطاي تغيير اسكيما



A.Farzin
دوشنبه 18 آبان 1388, 09:42 صبح
با سلام

زماني كه يك كرسر را اجرا مي‌كنم، گاهي اوقات به خطاي زير برمي‌خورد.

Could not complete cursor operation because the table schema changed after the cursor was declared.

با توجه به جستجوهاي انجام شده اين اشكال ناشي از جداول موقتي است كه در حين اجراي كرسر و توسط تريگرها ايجاد و حدف مي‌شوند.
براي حل مشكل پيشنهاد شده كه دو دستور زير قبل از اجراي تريگر، اجرا شود

DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE

در مورد عملكرد اين دو دستور و اثر آن بر عمليات سرور توضيحات بيشتري ميخواستم اگه ممكنه راهنمايي كنيد.
ممنون

AminSobati
دوشنبه 18 آبان 1388, 21:36 عصر
سلام دوست عزیزم،
DBCC DROPCLEANBUFFERS باعث میشه Pageهای موجود در حافظه تخلیه بشن و SQL Server مجبور میشه دوباره از اول به خاطر هر Query، اطلاعات (Page) لازم رو به Cache بیاره
DBCC FREEPROCCACHE باعث میشه تمام Planهای Compile شده از حافظه پاک بشن و هر SP یا Trigger که بخواد اجرا بشه باید مجددا Compile بشه