การตั้งค่าคอนฟิกหน่วยความจำและการปรับขนาดข้อควรพิจารณาใน 2012 เซิร์ฟเวอร์ SQL และรุ่นที่ใหม่กว่า

ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ

ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:2663912
สรุป
Microsoft SQL Server ดำเนินการแบบไดนามิก และอัตโนมัติหน่วยความจำที่จัดการได้ตามความต้องการหน่วยความจำปัจจุบันของส่วนประกอบภายในของ SQL Server และปริมาณงานบนระบบ นอกจากนี้ SQL Server ยังมีตัวเลือกหน่วยความจำที่เกี่ยวข้องกับการตั้งค่าคอนฟิกเพื่อช่วยในการปรับแต่งค่าปรับสำหรับรูปแบบลักษณะการทำงานของแอพลิเคชันเฉพาะและข้อกำหนดเฉพาะที่ขั้นสูง ตัวเลือกการตั้งค่าคอนฟิกที่แตกต่างกันมีดังนี้:
  • ตัวเลือกของ sp_configure (หน่วยความจำของเซิร์ฟเวอร์สูงสุด (MB), min เซิร์ฟเวอร์หน่วยความจำ (MB), และเปิดใช้งาน awe)
  • พารามิเตอร์เริ่มต้น-g (memory_to_reserve)
  • เพจที่ถูกล็อก

Microsoft SQL Server 2012 ทำให้เกิดการเปลี่ยนแปลงในตัวจัดการหน่วยความจำที่มีผลต่อวิธีการที่ผู้ดูแลกำหนดค่าตัวเลือกหน่วยความจำเหล่านี้ โปรดตรวจทานการเปลี่ยนแปลงที่อธิบายไว้ที่นี่ก่อนที่คุณปรับรุ่น SQL Server 2012 หรือ ก่อนที่คุณกำหนดค่าติดตั้งใหม่ของ SQL Server 2012

หมายเหตุ นอกจากนี้บทความนี้นำไปใช้กับ 2014 เซิร์ฟเวอร์ SQL ของ Microsoft
ข้อมูลเพิ่มเติม
นอกจากนี้ SQL Server 2012 แนะนำเกี่ยวกับการเปลี่ยนแปลงในลักษณะเป็นบัญชีชนิดเฉพาะของการปันส่วนหน่วยความจำและตัวเลือกการกำหนดค่าหน่วยความจำที่ควบคุมจำนวนสูงสุดของหน่วยความจำที่สามารถใช้ได้ โดยการปันส่วนชนิดเหล่านี้ การเปลี่ยนแปลงใน SQL Server 2012 ได้เฉพาะการร้องขอการจัดสรรหน่วยความจำ จาก SQL CLR และ จากการปันส่วนแบบหลายหน้า SQL Server 2012 มีหน้าตัวจัดสรรใหม่ที่จัดการกับการปันส่วนทั้งแบบ หน้าเดียว หรือหลายหน้า (น้อย กว่า 8 KB และมากกว่าคำขอปันส่วน 8 KB) ดังนั้น จึง มีอยู่ไม่มีประเภทแยกต่างหาก "การปันส่วนแบบหลายหน้า" ใน SQL Server 2012

ทรานซิสชั่นท์ "หน่วยความจำเซิร์ฟเวอร์สูงสุด (MB)" และ "min เซิร์ฟเวอร์หน่วยความจำ (MB)"

ตัวเลือกการตั้งค่าคอนฟิกต่อไปนี้ถูกกำหนดขีดจำกัดของหน่วยความจำทางกายภาพที่เก็บพักบัฟเฟอร์ที่ใช้ในรุ่นก่อนหน้าของ SQL เซิร์ฟเวอร์ (SQL Server 2005, SQL Server 2008, SQL Server 2008 R2), ขอให้สังเกตว่า เราจะพูดถึงหน่วยความจำทางกายภาพในนี้มีอยู่จริง กรณีและปัญหาหน่วยความจำที่มีความมุ่งมั่นกระบวนการกลไกจัดการฐานข้อมูล SQL Server:
  • หน่วยความจำของเซิร์ฟเวอร์สูงสุด (MB)
  • หน่วยความจำเซิร์ฟเวอร์ min (เมกะไบต์)
นอกจากนี้ตัวเลือก Thisconfiguration ปกติจะรวมเฉพาะปันส่วนหน่วยความจำที่มีค่าน้อยกว่า หรือเท่ากับ 8 KB ในกระบวนการเซิร์ฟเวอร์ SQL Werealso ปันส่วนเหล่านี้เรียกว่า "single_page_allocations" ได้เนื่องจากตัวจัดการหน่วยความจำของ SQL Server ใช้เป็นขนาดหน้ากระดาษของ 8 KB การตั้งค่าคอนฟิกนี้ไม่มีคำขอการปันส่วนหน่วยความจำต่อไปนี้:
  • หลายหน้าการปันส่วนจากเซิร์ฟเวอร์ SQL: เหล่านี้ถูกปันส่วนที่ร้องขอมากกว่า 8 KB
  • ปันส่วน CLR: ปันส่วนนี้รวม CLR SQL บบแบบและการปันส่วนของส่วนกลางที่สร้างขึ้นในระหว่างการเตรียมใช้งาน CLR
  • การปันส่วนหน่วยความจำสำหรับเธรดการกองซ้อนในกระบวนการเซิร์ฟเวอร์ SQL
  • คำขอการปันส่วนหน่วยความจำที่เกิดขึ้นกับ Windows โดยตรง: เหล่านี้รวมถึงการใช้ฮีป Windows และการปันส่วนโดยตรงที่ทำ โดยโมดูลที่โหลดลงในกระบวนการเซิร์ฟเวอร์ SQL เสมือน ตัวอย่างของการร้องขอการจัดสรรหน่วยความจำดังกล่าวรวมถึงปันส่วนจากกระบวนงานที่เก็บไว้แบบขยาย Dll วัตถุที่สร้างขึ้น โดยใช้ขั้นตอนการทำงานอัตโนมัติ (sp_OA เรียก), และการปันส่วนจากผู้ให้บริการเซิร์ฟเวอร์ที่ถูกเชื่อมโยง

เริ่มการทำงานกับ SQL Server 2012 หลายหน้าการปันส่วนและปันส่วน CLR ยังรวมอยู่ในขีดจำกัดหน่วยความจำที่ควบคุม โดยหน่วยความจำของเซิร์ฟเวอร์สูงสุด (MB)และหน่วยความจำเซิร์ฟเวอร์ min (MB) การเปลี่ยนแปลงนี้มีความสามารถในการปรับขนาดถูกต้องมากกว่าสำหรับความต้องการหน่วยความจำทั้งหมดที่ดำเนินการ โดยตัวจัดการหน่วยความจำของ SQL Server ตรวจดูค่าหน่วยความจำของเซิร์ฟเวอร์สูงสุด (MB)และหน่วยความจำเซิร์ฟเวอร์ min (MB)ปัจจุบันอย่างระมัดระวังหลังจากที่คุณปรับรุ่นเป็น SQL Server 2012 คุณควรตรวจทานมีค่าเนื่องจาก SQL Server 2012 รวม และบัญชีสำหรับการปันส่วนหน่วยความจำเพิ่มเติมเมื่อเปรียบเทียบกับรุ่นก่อนหน้านี้ในขณะนี้ การเปลี่ยนแปลงเหล่านี้นำไปใช้กับทั้งรุ่น 32 บิต และ 64 บิตรุ่นของ SQL Server 2012

ตารางต่อไปนี้บ่งชี้ว่า ชนิดการปันส่วนหน่วยความจำระบุจะถูกควบคุม โดยตัวเลือกการตั้งค่าคอนฟิกหน่วยความจำของเซิร์ฟเวอร์สูงสุด (MB)และหน่วยความจำเซิร์ฟเวอร์ min (เมกะไบต์)
ชนิดของการจัดสรรหน่วยความจำSQL Server 2005, SQL Server 2008, SQL, Server 2008 R2เซิร์ฟเวอร์ SQL 2012, SQL Server 2014
ปันส่วนหน้าเดียวใช่ใช่ ที่รวมไว้ในการปันส่วนหน้า "ขนาดใดก็ได้"
การปันส่วนแบบหลายหน้าไม่ใช่ใช่ ที่รวมไว้ในการปันส่วนหน้า "ขนาดใดก็ได้"
ปันส่วน CLRไม่ใช่ใช่
หน่วยความจำกองซ้อนของเธรดไม่ใช่ไม่ใช่
ปันส่วนโดยตรงจาก Windowsไม่ใช่ไม่ใช่
2012 เซิร์ฟเวอร์ SQL และรุ่นที่ใหม่กว่าอาจจัดสรรหน่วยความจำเพิ่มเติมจากค่าที่ระบุในการตั้งค่าหน่วยความจำสูงสุดของเซิร์ฟเวอร์ ลักษณะการทำงานนี้อาจเกิดขึ้นได้เมื่อค่าการรวมเซิร์ฟเวอร์หน่วยความจำ (KB)มีอยู่แล้วถึงการตั้งค่าหน่วยความจำเซิร์ฟเวอร์เป้าหมาย (KB)(ตามที่ระบุโดยหน่วยความจำสูงสุดของเซิร์ฟเวอร์) ถ้าไม่มีไม่เพียงพอต่อเนื่องหน่วยความจำเพื่อให้ตรงกับความต้องการของการร้องขอหน่วยความจำหลายหน้า (มากกว่า 8 KB) ได้เนื่องจาก มีการกระจายตัวของหน่วยความจำ SQL Server สามารถทำข้อผูกมัดเกินแทนที่จะปฏิเสธการร้องขอหน่วยความจำ

ทันทีที่มีดำเนินการปันส่วนนี้ ตัวตรวจสอบทรัพยากรเริ่มต้นการนำออกใช้หน่วยความจำปันส่วน และพยายามนำ belowthe มูลค่ารวมเซิร์ฟเวอร์หน่วยความจำ (KB)ข้อมูลจำเพาะเกี่ยวกับหน่วยความจำเซิร์ฟเวอร์เป้าหมาย (KB) ดังนั้น การใช้งานหน่วยความจำของ SQL Server อาจสั้น ๆ exceedtheหน่วยความจำสูงสุดของเซิร์ฟเวอร์การตั้งค่า ในสถานการณ์นี้ การอ่านตัวนับประสิทธิภาพการทำงานรวมเซิร์ฟเวอร์หน่วยความจำ (KB)จะเกินหน่วยความจำสูงสุดของเซิร์ฟเวอร์และการตั้งค่าหน่วยความจำเซิร์ฟเวอร์เป้าหมาย (KB)

ลักษณะการทำงานนี้โดยทั่วไปได้จากสังเกตในระหว่างการดำเนินการต่อไปนี้:
  • แบบสอบถามดัชนี Columnstore ขนาดใหญ่
  • สร้างดัชนี Columnstore (re) ซึ่งใช้หน่วยความจำจำนวนมากเพื่อดำเนินการแฮและเรียงลำดับ
  • การดำเนินการสำรองข้อมูลที่จำเป็นต้องมีบัฟเฟอร์หน่วยความจำขนาดใหญ่
  • การติดตามการดำเนินงานที่จำเป็นต้องจัดเก็บพารามิเตอร์ค่านำเข้าขนาดใหญ่

ปรับปรุงสะสม 8 สำหรับ SQL Server 2014 และ ปรับปรุงสะสม 1 สำหรับ SQL Server 2014 SP1แนะนำการปรับปรุงประสิทธิภาพสำหรับการนำออกใช้หน่วยความจำได้รวดเร็วขึ้น ตามที่อธิบายไว้ในภาพรวมก่อนหน้านี้ นอกจากนี้อัพเดต 9 สำหรับ SQL Server 2014ที่อยู่ปัญหาการจัดสรรหน่วยความจำที่เกี่ยวข้องกับข้อผูกมัดมากเกิน สำหรับข้อมูลเพิ่มเติม ดูบทความฐานความรู้ของ Microsoft ต่อไปนี้:
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับส่วนของหน่วยความจำที่ควบคุม โดยการตั้งค่าหน่วยความจำสูงสุดของเซิร์ฟเวอร์ให้ดู ตัวเลือกการตั้งค่าคอนฟิกเซิร์ฟเวอร์หน่วยความจำเซิร์ฟเวอร์ หัวข้อสมุดบัญชีออนไลน์

เปลี่ยนเป็น "memory_to_reserve"


ในเวอร์ชันก่อนหน้าของเซิร์ฟเวอร์ SQL เวอร์ชั่น 32 บิต (SQL Server 2005, SQL Server 2008 และ SQL Server 2008 R2), ตัวจัดการหน่วยความจำของ SQL Server ตั้งค่านอกเหนือเป็นส่วนหนึ่งของกระบวนการพื้นที่ที่อยู่เสมือนสำหรับใช้ โดยการร้องขอการปันส่วนต่อไปนี้:
  • หลายหน้าการปันส่วนจากเซิร์ฟเวอร์ SQL: เหล่านี้ถูกปันส่วนที่ร้องขอมากกว่า 8 KB
  • ปันส่วน CLR: ปันส่วนนี้รวม CLR SQL บบแบบและการปันส่วนของส่วนกลางที่สร้างขึ้นในระหว่างการเตรียมใช้งาน CLR
  • การปันส่วนหน่วยความจำสำหรับเธรดการกองซ้อนในกระบวนการเซิร์ฟเวอร์ SQL
  • คำขอการปันส่วนหน่วยความจำที่เกิดขึ้นกับ Windows โดยตรง: คำขอปันส่วนเหล่านี้รวมถึงการใช้ฮีป Windows และการปันส่วนโดยตรงที่ทำ โดยโมดูลที่โหลดลงในกระบวนการเซิร์ฟเวอร์ SQL เสมือน ตัวอย่างของการร้องขอการจัดสรรหน่วยความจำดังกล่าวรวมถึงปันส่วนจากกระบวนงานที่เก็บไว้แบบขยาย Dll วัตถุที่สร้างขึ้น โดยใช้ขั้นตอนการทำงานอัตโนมัติ (sp_OA เรียก), และการปันส่วนจากผู้ให้บริการเซิร์ฟเวอร์ที่ถูกเชื่อมโยง

พื้นที่ที่อยู่เสมือนที่จองไว้สำหรับการปันส่วนนี้จะขึ้นอยู่กับตัวเลือกการตั้งค่าคอนฟิกmemory_to_reserve ค่าเริ่มต้นที่ SQL Server ใช้เป็นขนาด 256 MB เมื่อต้องการแทนค่าเริ่มต้น ใช้พารามิเตอร์เริ่มต้น SQL Server -g นี้เป็นส่วนหนึ่งของพื้นที่ที่อยู่เสมือนถูกเรียกว่า "หน่วยความจำลา" หรือ "พู - บัฟเฟอร์ region"

เนื่องจาก SQL Server 2012 ใหม่ตัวจัดสรรหน้า "ขนาดใดก็ได้" ที่จัดการกับการปันส่วนที่มีขนาดใหญ่กว่า 8 KB ค่าmemory_to_reserveไม่มีการปันส่วนที่มีหลายหน้า นอกจากนี้การเปลี่ยนแปลง ทุกอย่างยังคงเหมือนเดิมกับตัวเลือกการกำหนดค่านี้

ตารางต่อไปนี้บ่งชี้ว่า ชนิดการปันส่วนหน่วยความจำระบุสามารถแบ่งได้เป็นmemory_to_reserveขอบเขตของพื้นที่ที่อยู่เสมือนสำหรับกระบวนการของเซิร์ฟเวอร์ SQL
ชนิดของการจัดสรรหน่วยความจำSQL Server 2005, SQL Server 2008, SQL Server 2008 R2เซิร์ฟเวอร์ SQL 2012, SQL Server 2014
ปันส่วนหน้าเดียวไม่ใช่ไม่ได้รวมไว้ในการปันส่วนหน้า "ขนาดใดก็ได้"
การปันส่วนแบบหลายหน้าใช่ไม่ได้รวมไว้ในการปันส่วนหน้า "ขนาดใดก็ได้"
ปันส่วน CLRใช่ใช่
หน่วยความจำกองซ้อนของเธรดใช่ใช่
ปันส่วนโดยตรงจาก Windowsใช่ใช่

เปลี่ยนแปลงตัวเลือกหน่วยความจำที่เกี่ยวข้องกับการตั้งค่าคอนฟิกอื่น

ถ้าคุณตั้งค่าคอนฟิก SQL Server 2005, SQL Server 2008 หรือ SQL Server 2008 R2 ให้ใช้ตัวเลือก "เปิดใช้งาน awe" โปรดตรวจทานบทความต่อไปนี้เพื่อให้เข้าใจถึงการเปลี่ยนแปลงที่สำคัญสำหรับตัวเลือกการตั้งค่าคอนฟิกนี้:

ถ้าคุณตั้งค่าคอนฟิก SQL Server 2005, SQL Server 2008 หรือ SQL Server 2008 R2 ให้ใช้คุณลักษณะ "เพจที่ถูกล็อก" โปรดตรวจทานบทความต่อไปนี้เพื่อให้เข้าใจถึงการเปลี่ยนแปลงที่สำคัญสำหรับตัวเลือกการตั้งค่าคอนฟิกนี้:

ใช้พื้นที่หน่วยความจำสูงสุดสำหรับรุ่นต่าง ๆ ของ SQL Server

รุ่นต่าง ๆ ของ SQL Server มีขีดจำกัดสูงสุดในการใช้ทรัพยากรต่าง ๆ ที่จะสามารถใช้ มีข้อจำกัดที่บังคับใช้ในการใช้หน่วยความจำสูงสุดสำหรับรุ่นต่าง ๆ ของ SQL Server ตัวอย่างเช่น มีอินสแตนซ์ของ SQL Server 2008 R2 Standard Edition สามารถใช้เฉพาะตัวสูงสุดหน่วยความจำของ 64 กิกะไบต์ สำหรับรายละเอียดที่สมบูรณ์ ไปยังเว็บเพจที่ MSDN ต่อไปนี้:เริ่มการทำงานกับ SQL Server 2012 ขีดจำกัดหน่วยความจำเหล่านี้จะบังคับใช้เฉพาะสำหรับฐานข้อมูลแคช (พูลโปรแกรมบัฟเฟอร์) ส่วนเหลือของแคชในตัวจัดการหน่วยความจำของ SQL Server สามารถใช้หน่วยความจำมากระบุไว้ ด้วยข้อจำกัดของรุ่นเหล่านี้ ตัวอย่างเช่น เป็นรุ่น SQL Server 2012 Express สามารถใช้เฉพาะขนาดสูงสุดของ 1.4 GB สำหรับแคชฐานข้อมูล แคชอื่น ๆ (เช่นแคกระบวนการ การแคชข้อมูลเมตา และอื่น ๆ) สามารถใช้หน่วยความจำเกินขนาดที่กำหนด โดยการตั้งค่าคอนฟิก "หน่วยความจำสูงสุดของเซิร์ฟเวอร์"

คำเตือน: บทความนี้ได้รับการแปลโดยอัตโนมัติ

คุณสมบัติ

รหัสบทความ: 2663912 - การตรวจสอบครั้งสุดท้าย: 11/07/2015 07:16:00 - ฉบับแก้ไข: 6.0

Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2014 Enterprise

  • kbtshoot kbmt KB2663912 KbMtth
คำติชม