PDA

View Full Version : شماره پروسه صفر



SKazemi
سه شنبه 24 آبان 1401, 08:56 صبح
با سلام
در یک بانک اطلاعاتی Sql server 2019من spid هایی رو میبینم که با یکspidبه شماره صفر Block شده اند و بعد خود آنها موجب گیر افتادن سایر پروسه ها شده اند.
این پروسه با شماره صفر چیه و علت این مساله از کجاست؟
لطفا اگر کسی می تونه راهنمایی کنه.
پیشاپیش سپاسگزارم

bitasoft.ir
چهارشنبه 22 شهریور 1402, 21:22 عصر
در SQL Server، پروسه با شماره صفر (SPID 0) به عنوان پروسه‌ای خاص شناخته می‌شود که معمولاً به نام "System Process" (پروسه سیستمی) یا "Idle" (خالی) شناخته می‌شود. این پروسه به طور پیش فرض در سیستم SQL Server وجود دارد و برخی از وظایف مهم را انجام می‌دهد.
این پروسه به طور عمده برای موارد زیر مورد استفاده قرار می‌گیرد:
Scheduler: پروسه صفر مسئول مدیریت گردشگرهای (Schedulers) SQL Server است. این گردشگرها وظیفه تخصیص منابع سیستمی به پروسه‌های مختلف SQL Server را برعهده دارند.
توزیع منابع (Resource Governor): پروسه صفر در مواردی که SQL Server به وسیلهٔ Resource Governor (یک ابزار برای مدیریت و تخصیص منابع) میزبانی می‌شود، مسئول تخصیص منابع به پروسه‌ها و درخواست‌ها است.
ترتیب بندی و اولویت‌دهی پروسه‌ها: پروسه صفر وظیفه تعیین اولویت و ترتیب بندی پروسه‌ها بر اساس ویژگی‌هایی نظیر اهمیت (Priority) و منابع مصرفی (Resource Usage) را دارد.
در مورد اینکه چرا یک پروسه با شماره صفر به شماره‌گذاری یک SPID دیگر Block شده و موجب گیرافتادن سایر پروسه‌ها می‌شود، باید علت این مساله را با دقت بررسی کنید. این مساله ممکن است از علل مختلفی نظیر دسترسی به منابع، برخورد همزمان برای منابع مشابه، بروز خطاها و ... باشد. برای تشخیص علت دقیق، باید از ابزارها و دستورات تشخیصی SQL Server استفاده کنید. به عنوان مثال، با دستور sp_who2 یا دستور sys.dm_exec_requests می‌توانید اطلاعات بیشتری در مورد پروسه‌ها و وضعیت آنها دریافت کنید تا به تحلیل مشکل کمک کنند.

برای این کار، می‌توانید از دستورات sp_who2 و sys.dm_exec_requests استفاده کنید.
استفاده از دستور sp_who2:
sp_who2 یک دستور سیستمی در SQL Server است که اطلاعات مرتبط با پروسه‌ها، ارتباطات فعلی و وضعیت‌های آنها را نمایش می‌دهد. این دستور به شما اطلاعاتی در مورد SPID‌ها، دستورات اجرایی، دستورات مسدود شده، وضعیت اجرایی و موارد دیگر را ارائه می‌دهد. برای استفاده از آن، می‌توانید این دستور را به صورت زیر اجرا کنید:
EXEC sp_who2
این دستور یک جدول مشخص را به شما نمایش می‌دهد که اطلاعات جامعی از پروسه‌ها و ارتباطات آنها را نمایش می‌دهد. می‌توانید در ستون‌های مختلف این جدول اطلاعات را برای SPID مورد نظر خود جستجو کنید.


استفاده از دستور sys.dm_exec_requests:
sys.dm_exec_requests یک دید جدولی در SQL Server است که اطلاعات مرتبط با دستورات در حال اجرا را نمایش می‌دهد. برای استفاده از آن، می‌توانید این دستور را به صورت زیر اجرا کنید:


SELECT *
FROM sys.dm_exec_requests
این دستور به شما اطلاعاتی از جمله SPID، وضعیت، مدت زمان اجرا، و دیگر مشخصات مرتبط با دستور در حال اجرا را نمایش می‌دهد.
با اجرای هر یک از دستورات فوق، می‌توانید به صورت دقیقتر و تحلیلی‌تر وضعیت پروسه‌ها و دستورات در SQL Server خود را بررسی کنید و مشکل خود را شناسایی کنید. در صورت نیاز به راهنمایی بیشتر یا اطلاعات دقیقتر، مشخصات بیشتری از مشکل خود را ارائه دهید تا بتوانم بهتر کمک کنم.



در هر صورت، برای حل این مشکل نیاز به بررسی و تجزیه و تحلیل دقیقتر دارید و این بستگی به موارد خاصی دارد که در سیستم شما رخ می‌دهد. در صورت بروز مشکل و یا نیاز به راهنمایی بیشتر، مشخصات بیشتری از وضعیت و مشکل خود را ارائه دهید تا بتوانم بهتر کمک کنم.


با سلام
در یک بانک اطلاعاتی Sql server 2019من spid هایی رو میبینم که با یکspidبه شماره صفر Block شده اند و بعد خود آنها موجب گیر افتادن سایر پروسه ها شده اند.
این پروسه با شماره صفر چیه و علت این مساله از کجاست؟
لطفا اگر کسی می تونه راهنمایی کنه.
پیشاپیش سپاسگزارم