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

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 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)และหน่วยความจำเซิร์ฟเวอร์ค่าน้อยที่สุด (MB) การเปลี่ยนแปลงนี้มีความสามารถในการปรับขนาดถูกต้องแม่นยำสำหรับความต้องการหน่วยความจำทั้งหมดที่ดำเนินการ โดยตัวจัดการหน่วยความจำของ SQL Server ตรวจดูค่าหน่วยความจำของเซิร์ฟเวอร์สูงสุด (MB)และหน่วยความจำเซิร์ฟเวอร์ค่าน้อยที่สุด (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
การปันส่วนแบบหน้าเดียวใช่ใช่ ที่รวมไว้ในการปันส่วนหน้า "ขนาดใดก็ได้"
การปันส่วนแบบหลายหน้าไม่ใช่ใช่ ที่รวมไว้ในการปันส่วนหน้า "ขนาดใดก็ได้"
ปันส่วน CLRไม่ใช่ใช่
หน่วยความจำกองซ้อนของเธรดไม่ใช่ไม่ใช่
การปันส่วนโดยตรงจาก Windowsไม่ใช่ไม่ใช่

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

ข้อมูลอ้างอิง

เปลี่ยนแปลงตัวจัดการหน่วยความจำของเซิร์ฟเวอร์ SQL ใน Denali

คุณลักษณะใหม่ของ SQLOS ใน SQL Server 2012

คุณสมบัติ

หมายเลขบทความ (Article ID): 2663912 - รีวิวครั้งสุดท้าย: 24 กรกฎาคม 2557 - Revision: 3.0
ใช้กับ
  • Microsoft SQL Server 2012 Enterprise
Keywords: 
kbtshoot kbmt KB2663912 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:2663912

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com