วิธีการสร้างสคริปต์ของข้อมูลเมตาของฐานข้อมูลที่จำเป็นในการสร้างฐานข้อมูลสถิติเท่านั้น ใน SQL Server 2005 และ SQL Server 2008

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

เนื้อหาบนหน้านี้

บทนำ

optimizer แบบสอบถาม ใน Microsoft SQL Server 2005 หรือ Microsoft SQL Server 2008 ใช้ชนิดของข้อมูลต่อไปนี้เพื่อดูว่าแผนการสอบถามที่ดีที่สุด:
  • ข้อมูลเมตาของฐานข้อมูล
  • สภาพแวดล้อมของฮาร์ดแวร์
  • สถานะของเซสชันฐานข้อมูล
โดยทั่วไป คุณต้องจำลองทั้งหมดเหล่านี้เดียวกันกับชนิดของข้อมูลได้ถ้าคุณต้องการทบทวนเกิดลักษณะการทำงานของ optimizer แบบสอบถามบนระบบทดสอบ

ฝ่ายบริการสนับสนุนลูกค้าของ Microsoft อาจขอให้คุณสร้างสคริปต์ของข้อมูลเมตาของฐานข้อมูล ฝ่ายบริการสนับสนุนลูกค้าของ Microsoft ใช้สคริปต์นี้ของข้อมูลเมตาของฐานข้อมูลการตรวจสอบปัญหา optimizer บทความนี้อธิบายขั้นตอนในการสร้างสคริปต์สถิติ บทความนี้ยังอธิบายวิธีการที่ optimizer แบบสอบถามใช้ข้อมูล

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

ถ้าคุณใช้ SQL Server 2005 ก่อนที่คุณทำตามขั้นตอนในการสร้างสคริปต์ ตรวจสอบให้แน่ใจว่า Studio จัดการเซิร์ฟเวอร์ SQL รุ่นของ SQL Server 2005 Service Pack 2 หรือรุ่นที่ใหม่กว่า ถ้าคุณใช้ Studio จัดการเซิร์ฟเวอร์ SQL รุ่นก่อนหน้านี้ใน SQL Server 2005 ตัวช่วยสร้างสคริปต์ที่ไม่ประกอบด้วยตัวทั้งหมดที่จำเป็นเลือกสำหรับขั้นตอนในบทความนี้ทำงานอย่างถูกต้อง

สคริปต์ฐานข้อมูลทั้งหมด

เมื่อคุณสร้างฐานข้อมูลโคลนสถิติอย่างเดียว คุณอาจได้ง่ายขึ้น และเชื่อถือได้มากขึ้นกับสคริปต์ฐานข้อมูลทั้งหมดแทนการใช้สคริปต์แต่ละวัตถุ เมื่อคุณสคริปต์ฐานข้อมูลทั้งหมด คุณได้รับข้อความแสดงข้อดีดังต่อไปนี้:
  • คุณหลีกเลี่ยงปัญหาเกี่ยวกับออบเจ็กต์ที่อ้างถึงที่จำเป็นต่อการทบทวนเกิดปัญหาที่ขาดหายไป
  • คุณต้องการขั้นตอนที่น้อยกว่ามากเมื่อต้องการเลือกวัตถุที่จำเป็น
หมายเหตุ:ถ้าคุณสร้างสคริปต์สำหรับฐานข้อมูล และข้อมูลเมตาสำหรับฐานข้อมูลประกอบด้วยหลายพันของออบเจ็กต์ กระบวนการเขียนสคริปต์จะทรัพยากรของ CPU ที่สำคัญ เราขอแนะนำว่า คุณได้สร้างสคริปต์ระหว่าง off-peak ชั่วโมง หรือ คุณสามารถใช้ตัวเลือกที่สองเพื่อสร้างสคริปต์สำหรับแต่ละวัตถุ

สคริปต์แต่ละฐานข้อมูลที่ถูกอ้างถึง โดยการสอบถามของคุณ ทำตามขั้นตอนเหล่านี้:
  1. เปิด Studio จัดการเซิร์ฟเวอร์ SQL
  2. ในการวัตถุ Explorerขยายฐานข้อมูลแล้ว ค้นหาฐานข้อมูลที่คุณต้องการใช้สคริปต์
  3. คลิกขวาที่ฐานข้อมูล ชี้ไปที่งานแล้ว คลิกสร้างสคริปต์.
  4. ในตัวช่วยสร้างสคริปต์ ตรวจสอบว่า มีเลือกฐานข้อมูลที่ถูกต้อง คลิกเพื่อเลือกนั้นสคริปต์วัตถุทั้งหมดในฐานข้อมูลที่เลือกกล่องกาเครื่องหมาย และจากนั้น คลิกถัดไป.
  5. ในการเลือกตัวเลือกสคริปต์กล่องโต้ตอบกล่อง เปลี่ยนการตั้งค่าต่อไปนี้จากค่าเริ่มต้นเป็นค่าที่แสดงอยู่ในตารางต่อไปนี้
    ยุบตารางนี้ขยายตารางนี้
    ตัวเลือกการเขียนสคริปต์ค่าที่เลือก
    Padding AnsiTrue
    ดำเนินการเขียนสคริปต์บนข้อผิดพลาดต่อไปTrue
    สร้างสคริปต์สำหรับวัตถุที่อ้างถึงTrue
    รวมชื่อข้อจำกัดของระบบTrue
    เปรียบเทียบของสคริปต์True
    สร้างฐานข้อมูลของสคริปต์True
    ล็อกอินของสคริปต์True
    สคริปต์วัตถุระดับสิทธิ์True
    สถิติเกี่ยวกับสคริปต์สถิติเกี่ยวกับสคริปต์และ histograms
    ดัชนีของสคริปต์True
    ทริกเกอร์ของสคริปต์True
    หมายเหตุ:กระบวนการล็อกอินของสคริปต์ตัวเลือกและสคริปต์วัตถุระดับสิทธิ์ตัวเลือกอาจไม่ถูกต้องจนกว่าเค้าร่างประกอบด้วยวัตถุที่เป็นของล็อกอินอื่นที่ไม่ใช่dbo.
  6. คลิกถัดไป.
  7. คลิกการสคริปต์ไปยังแฟ้มตัวเลือก และจากนั้น ป้อนชื่อแฟ้ม
  8. คลิกเสร็จสิ้น.

วัตถุที่แต่ละสคริปต์

คุณอาจสคริปต์เฉพาะวัตถุแต่ละที่อ้างถึง โดยการสอบถามเฉพาะแทนที่การเขียนสคริปต์ฐานข้อมูลเสร็จสมบูรณ์ อย่างไรก็ตาม จนกว่าฐานข้อมูลทั้งหมด วัตถุที่ถูกสร้างขึ้น โดยใช้อนุประโยค WITH SCHEMABINDING ข้อมูลการอ้างอิงในนั้นsys.dependsตารางระบบอาจเสมอไม่ถูกต้อง inaccuracy นี้อาจทำให้เกิดปัญหาดังต่อไปนี้อย่างใดอย่างหนึ่ง:
  • กระบวนการเขียนสคริปต์ไม่สคริปต์ออบเจ็กต์ที่อ้างถึง
  • กระบวนการเขียนสคริปต์อาจสคริปต์วัตถุในใบสั่งที่ไม่ถูกต้อง เมื่อต้องการเรียกใช้สคริปต์เสร็จเรียบร้อยแล้ว คุณต้องแก้ไขสคริปต์ที่สร้างขึ้นด้วยตนเอง
ดังนั้น เราไม่แนะนำว่า คุณสคริปต์วัตถุแต่ละ จนกว่าฐานข้อมูลมีวัตถุ และการเขียนสคริปต์ใดหรือนำยาวเกินไป ถ้าคุณต้องใช้วัตถุที่แต่ละสคริปต์ ทำตามขั้นตอนเหล่านี้:
  1. ใน SQL Server Studio จัดการ ขยายฐานข้อมูลแล้ว ค้นหาฐานข้อมูลที่คุณต้องการใช้สคริปต์
  2. คลิกขวาที่ฐานข้อมูล ชี้ไปที่สคริปต์ฐานข้อมูลเป็นชี้ไปที่สร้างเมื่อต้องการแล้ว คลิกแฟ้ม:.
  3. ใส่ชื่อแฟ้ม และจากนั้น คลิกบันทึก.

    จะ scripted คอนเทนเนอร์ของฐานข้อมูลหลัก คอนเทนเนอร์นี้มีแฟ้ม กลุ่มแฟ้ม ฐานข้อมูล และคุณสมบัติ
  4. คลิกขวาที่ฐานข้อมูล ชี้ไปที่งานแล้ว คลิกสร้างสคริปต์.
  5. ตรวจสอบให้แน่ใจว่า ได้เลือกฐานข้อมูลที่ถูกต้อง และจากนั้น คลิกถัดไป.
  6. ในการเลือกตัวเลือกสคริปต์กล่องโต้ตอบกล่อง เปลี่ยนการตั้งค่าต่อไปนี้จากค่าเริ่มต้นเป็นค่าที่แสดงอยู่ในตารางต่อไปนี้
    ยุบตารางนี้ขยายตารางนี้
    ตัวเลือกการเขียนสคริปต์ค่าที่เลือก
    Padding AnsiTrue
    Continue Scripting on ErrorTrue
    Include System Constraint NamesTrue
    Generate Script for Dependent ObjectsTrue
    Script CollationTrue
    Script LoginsTrue
    Script Object Level PermissionsTrue
    Script StatisticsScript Statistics and histograms
    Script USE DATABASETrue
    Script IndexesTrue
    Script TriggersTrue
    หมายเหตุ:กระบวนการScript LoginsตัวเลือกและScript Object Level Permissionsoption may not be required unless the schema contains objects that are owned by logins other thandbo.
  7. ในการChoose Object Typesdialog box, select all database object types that the problematic query references.

    For example, if the query only references tables, selectตาราง. If the query references a view, selectViews and Tables. If the problematic query uses a user-defined function, selectฟังก์ชัน.
  8. When you have selected all the object types that are referenced by the query, clickถัดไป.
  9. A dialog box appears for each database object type that you selected in step 7. In each dialog box, select the specific tables, views, functions, or other database objects, and then clickถัดไป.
  10. คลิกการScript to Fileoption, and then specify the same file name that you entered in step 3.
  11. คลิกเสร็จสิ้นto start the scripting.
When the scripting has finished, send the script file to the Microsoft support engineer. The Microsoft Support Engineer may also request the following information:
  • The hardware configuration, including the number of processors and how much physical memory exists
  • The SET options that were active when you ran the query
หมายเหตุ:You may have already provided this information by sending a SQLDiag report or a SQL Profiler trace. You may have also used another method to provide this information.

How the information is used

The following tables help explain how the query optimizer uses this information to select a query plan.

Metadata

ยุบตารางนี้ขยายตารางนี้
ConstraintsThe query optimizer frequently uses constraints to detect contradictions between the query and the underlying schema. For example, if the query has a "WHERE col = 5" clause and a "CHECK (col< 5)"="" check="" constraint="" exists,="" the="" query="" optimizer="" knows="" that="" no="" rows="" will="">

The query optimizer makes similar types of deductions about nullability. For example, the "WHERE col IS NULL" clause is known to be true or false depending on the nullability of the column and whether the column is from the outer table of an outer join. The presence of FOREIGN KEY constraints is useful to determine cardinality and the appropriate join order. The query optimizer can use constraint information to eliminate joins or simplify predicates. These changes may remove the requirement to access the base tables.
Statisticsข้อมูลสถิติประกอบด้วยความหนาแน่นและ histogram ที่แสดงชื่อการแจกจ่ายนำคอลัมน์คีย์ดัชนีและสถิติ ทั้งนี้ขึ้นอยู่กับลักษณะของการ predicate, optimizer แบบสอบถามอาจใช้ความหนาแน่น histogram หรือทั้งสองเพื่อประเมิน cardinality ของ predicate แบบ สถิติการปรับปรุงล่าสุดจำเป็นสำหรับการประเมิน cardinality ที่ถูกต้อง ประเมิน cardinality ถูกใช้เป็นการป้อนข้อมูลในการประเมินต้นทุนของการดำเนินการ ดังนั้น คุณต้องมีการประเมิน cardinality ดีเพื่อขอรับแผนการสอบถามที่ดีที่สุด
ขนาดของตาราง (จำนวนของแถวและหน้า)optimizer แบบสอบถามให้ใช้ histograms และความหนาแน่นเพื่อคำนวณความน่าเป็นว่า predicate ที่กำหนดเป็นจริง หรือเท็จ การประเมิน cardinality ขั้นสุดท้ายถูกคำนวณ โดยการคูณความเป็นไปได้ที่ตามจำนวนแถวที่ส่งคืน โดยการดำเนินการย่อย หมายเลขหน้าในตารางหรือดัชนีเป็นตัวคูณในการประเมินต้นทุน IO ขนาดของตารางถูกใช้เพื่อคำนวณต้นทุนของการสแกน และจะมีประโยชน์เมื่อคุณประเมินจำนวนเพจที่จะสามารถเข้าถึงในระหว่างการค้นหาดัชนี
ตัวเลือกฐานข้อมูลหลายตัวเลือกฐานข้อมูลอาจส่งผลต่อการปรับให้เหมาะสม กระบวนการauto_create_statisticsและauto_update_statisticsตัวเลือกการส่งผลกระทบต่อว่า optimizer แบบสอบถามจะสร้างสถิติใหม่หรือปรับปรุงสถิติที่ล้าสมัย กระบวนการparameterizationระดับการมีผลต่อวิธี parameterized แบบสอบถามสำหรับการป้อนค่าก่อนที่แบบสอบถามสำหรับการป้อนค่าคือ handed ไป optimizer แบบสอบถาม parameterization อาจส่งผลต่อการประเมิน cardinality และไม่สามารถนอกจากนี้ให้ตรงกันจากมุมมองที่มีการจัดทำดัชนีและ optimizations ชนิดอื่น ๆ กระบวนการdate_correlation_optimizationตั้งค่าการทำให้ optimizer เพื่อค้นหา correlations ระหว่างคอลัมน์ การตั้งค่านี้มีผลต่อการประเมิน cardinality และต้นทุน

สภาพแวดล้อม

ยุบตารางนี้ขยายตารางนี้
ตัวเลือก SET เซสชันกระบวนการansi_nullsการตั้งค่าผลว่าการ " NULL =ค่า NULL " นิพจน์ตรวจสอบเป็นจริง ประมาณการ cardinality สำหรับตัวเชื่อม outer อาจเปลี่ยนแปลงทั้งนี้ขึ้นอยู่กับการตั้งค่าปัจจุบัน นอกจากนี้ นิพจน์ ambiguous อาจยังเปลี่ยน ตัวอย่างเช่น การ "คอลัมน์ =ค่า NULL " นิพจน์ตรวจสอบแตกต่างไปตามการตั้งค่า อย่างไรก็ตาม ใน "คอลัมน์ IS NULL " นิพจน์เสมอตรวจสอบวิธีการเดียวกัน
ทรัพยากรฮาร์ดแวร์ต้นทุนสำหรับตัวดำเนินการเรียงลำดับและแฮขึ้นอยู่กับจำนวนหน่วยความจำที่พร้อมใช้งานกับ SQL Server ที่สัมพันธ์กัน ตัวอย่างเช่น ถ้าขนาดของข้อมูลมีขนาดใหญ่กว่าแค optimizer แบบสอบถามทราบว่า ข้อมูลที่ต้องเสมอสามารถ spooled ลงดิสก์ อย่างไรก็ตาม ถ้าขนาดของข้อมูลมีขนาดเล็กมากที่นอกเหนือจากแคช การดำเนินการที่มีแนวโน้มจะทำในหน่วยความจำ SQL Server พิจารณา optimizations อื่นนอกจากนี้ ถ้าเซิร์ฟเวอร์ที่มีตัวประมวลผลมากกว่าหนึ่ง และ หากยังไม่ได้การปิดใช้งาน โดยใช้คำแนะนำ "MAXDOP" parallelism หรือระดับสูงสุดของ parallelismตัวเลือกการตั้งค่าคอนฟิก
sql Server หุ้นรักษาหน่วย (SKU)คุณลักษณะบางอย่างจะเปิดใช้งานเฉพาะในรุ่นเฉพาะ ของ SQL Server 2005 หรือ SQL Server 2008 ตัวอย่างเช่น การจับคู่การสอบถามกับมุมมองที่มีการจัดทำดัชนีไว้เท่านั้นเกิดใน SQL Server 2005 Edition องค์กร ในทำนองเดียวกัน การจับคู่กับ guides แผนถูกจำกัดไปยัง SQL Server 2000 มาตรฐาน Edition และ SQL Server 2005 Edition องค์กร

คุณสมบัติ

หมายเลขบทความ (Article ID): 914288 - รีวิวครั้งสุดท้าย: 16 มกราคม 2554 - Revision: 4.0
ใช้กับ
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
Keywords: 
kbexpertiseinter kbexpertiseadvanced kbsql2005engine kbhowto kbinfo kbmt KB914288 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:914288

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

 

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