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

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 2663912 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

สรุป

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

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

ข้อมูลเพิ่มเติม

SQL Server 2012 แนะนำเกี่ยวกับการเปลี่ยนแปลงในวิธีการปันส่วนของหน่วยความจำบางชนิดจะลงบัญชีและตัวเลือกการกำหนดค่าหน่วยความจำที่ควบคุมปริมาณสูงสุดของหน่วยความจำที่สามารถใช้ได้ ด้วยการปันส่วนต่าง ๆ เหล่านี้ การเปลี่ยนแปลงใน SQL Server 2012 จะการร้องขอการจัดสรรหน่วยความจำ จาก SQL CLR และ การปันส่วนหน้าเท่านั้น SQL Server 2012 มีตัวจัดการใหม่หน้าสรรที่จัดการกับการปันส่วนทั้ง หน้าเดียว และหลายหน้า (น้อย กว่า 8 KB และมากกว่าจำนวนที่ได้รับการร้องขอการปันส่วน 8 KB) ดังนั้น จะไม่จัดประเภทที่แยกต่างหากที่เรียกว่า "การปันส่วนหน้า" ใน SQL Server 2012

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

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

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

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

การเปลี่ยนแปลง "memory_to_reserve"


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

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

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

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

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

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

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

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


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

คุณสมบัติ

หมายเลขบทความ (Article ID): 2663912 - รีวิวครั้งสุดท้าย: 21 กุมภาพันธ์ 2555 - Revision: 1.0
ใช้กับ
  • Microsoft SQL Server 2012 Enterprise
Keywords: 
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