Applies ToSQL Server 2012 Service Pack 3 SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Enterprise Core SQL Server 2012 Standard

بعد تطبيق هذا التحديث ، يجب أضافه علامة التتبع-T8075 كمعلمه بدء التشغيل لتمكين هذا التغيير.

الأعراض

عندما تقوم بتشغيل استعلام في إصدار 64 بت من Microsoft SQL Server 2012 ، تتلقي رسالة خطا خارج الذاكرة تشبه ما يلي في سجل الأخطاء الخاص ب SQL Server:

فشل تخصيص الصفحات: FAIL_PAGE_ALLOCATION 513

تستغرق الاستعلامات وقتا طويلا لإنهاء التنفيذ وتواجه SOS_MEMORY_TOPLEVELBLOCKALLOCATOR الانتظار. عند فحص نقاط المعلومات التالية ، ستجد ان هناك مساحة العنوان الظاهرية المتوفرة منخفضه جدا:

  • القسم DBCC ميموريستاتوس-العملية/النظام الذاكرة الظاهرية المتوفرة

  • دمف: sys.dm_os_process_memory-virtual_address_space_available_kb الاعمده

تبدا هذه القيم في أكثر من 8 غيغابايت في عمليه x64 وتستمر في الكليمب لأسفل وتصل إلى القليل من الغيغابايت.  عندما تكون في المرحلة التي تكون فيها مساحة العنوان الظاهري المتوفرة منخفضه جدا ، قد يواجه الاستعلامات التي تحاول تنفيذ تخصيص الذاكرة أيضا نوع انتظار كميمثرياد. ستستمر نقاط البيانات التالية في زيادة الوقت:

  • دمف: sys.dm_os_process_memory وsys.dm_os_memory_nodes الاعمده virtual_address_space_reserved_kb

  • ميموريستاتوس DBCC-قسم أداره الذاكرة-VM محجوز

ستزيد هذه القيم عاده من مضاعفات قيمه "الحد الأقصى لذاكره الخادم" حتى تصل إلى 8 تيرابايت تقريبا.

السبب

عند وصول عمليه SQL Server إلى الحالة التي تكون فيها ذاكره الخادم الإجمالي = ذاكره الخادم الهدف = الحد الأقصى لذاكره الخادم ، تتوفر النهج في أداره ذاكره SQL Server لكي تنجح التخصيصات الجديدة بشكل مؤقت. قد يؤدي نمط التوزيع المكرر ضمن مثل هذا الشرط إلى تجزئه كتل الذاكرة واستهلاك مساحة العنوان الظاهرية. إذا تكررت هذه العملية عده مرات ، سيتم استنفاد مساحة عنوان SQL Server الظاهرية ، ستلاحظ الاعراض التي تمت الاشاره اليها سابقا.

الحل

معلومات التحديث التراكمي

تم تصحيح المشكلة أولا في التحديث التراكمي التالي ل SQL Server.

 

يحتوي كل تحديث تراكمي جديد ل SQL Server علي كل الإصلاحات العاجلة وكل تصحيحات الأمان التي تم تضمينها في التحديث التراكمي السابق. من المستحسن تنزيل أحدث التحديثات التراكمية ل SQL Server وتثبيته:

يمنع هذا الإصلاح العاجل نفاد الذاكرة والخفض المستمر لمساحة العنوان الظاهري المتوفرة التي قد تواجهها.

الحالة

أقرت Microsoft أن هذه المشكلة تحدث في منتجات Microsoft المسردة في المقطع "تنطبق على".

مزيد من المعلومات

  • يسمح Windows 2012 R2 بزيادة مساحة العنوان الظاهرية بحجم 128 تيرابايت. ولذلك ، قد لا تلاحظ هذه المشكلة في بيئات Windows 2012 R2. لمزيد من المعلومات ، راجع الموضوع التالي في مركز التطوير في Windows:حدود الذاكرة لإصدارات windows و Windows Server

  • إذا رايت تزايدا مستمرا في مساحة العنوان الظاهرية حتى بعد تطبيق الإصلاح ، فيمكنك تحديد الاستعلامات أو العمليات التي تتطلب قطع كبيره من الذاكرة باستخدام الحدث الموسع الPage_allocated . يبدو البرنامج النصي النموذجي كما يلي:

    CREATE EVENT SESSION [memory_tracking] ON SERVERADD EVENT sqlos.page_allocated(    ACTION(package0.callstack,sqlos.cpu_id,sqlos.task_address,sqlos.worker_address,sqlserver.database_id,sqlserver.query_hash,sqlserver.request_id,sqlserver.session_id,sqlserver.sql_text)    WHERE ([number_pages]>(1)))ADD TARGET package0.event_file(SET filename=N'E:\Data\MSSQL11.MSSQLSERVER\MSSQL\Log\memory_tracking.xel')WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=PER_CPU,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF)GO

    عاده ما تكون هذه النسخ الاحتياطية للسجلات وعمليات صيانة الفهرسة ، التي تحدث بشكل متكرر.

هل تحتاج إلى مزيد من المساعدة؟

الخروج من الخيارات إضافية؟

استكشف مزايا الاشتراك، واستعرض الدورات التدريبية، وتعرف على كيفية تأمين جهازك، والمزيد.

تساعدك المجتمعات على طرح الأسئلة والإجابة عليها، وتقديم الملاحظات، وسماعها من الخبراء ذوي الاطلاع الواسع.