วิธีการแก้ไขการสอบถามที่รันช้า ใน SQL Server 7.0 หรือรุ่นที่ใหม่กว่า

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

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

สรุป

บทความนี้อธิบายวิธีการจัดการกับปัญหาประสิทธิภาพการทำงานที่โปรแกรมประยุกต์อาจพบในร่วมกับ Microsoft SQL Server: ช้าประสิทธิภาพการทำงานของแบบสอบถามเฉพาะหรือกลุ่มของแบบสอบถาม ถ้าคุณกำลังแก้ไขปัญหาประสิทธิภาพการทำงานแบบ แต่คุณไม่มี isolated ปัญหาการสอบถามเฉพาะหรือกลุ่มเล็ก ๆ ของแบบสอบถามที่ทำงานช้าลงที่เกินกว่าที่คาดไว้ ดูบทต่อไปนี้ความใน Microsoft Knowledge Base ก่อนที่จะดำเนินต่อ:
224587HOW TO: แก้ไขแอพลิเคชันประสิทธิภาพการทำงานกับ SQL Server
บทความนี้จะขึ้นอยู่กับ assumption ว่า คุณได้ใช้บทความ 224587 ให้แคบลงขอบเขตของปัญหา และให้คุณจับภาพการสืบค้นกลับ Profiler SQL กับเฉพาะเหตุการณ์และข้อมูลคอลัมน์ที่มีรายละเอียดในบทความ 224587

การปรับค่าการสอบถามฐานข้อมูลสามารถเป็นแบบ endeavor multi-faceted ในส่วนต่อไปนี้กล่าวถึงรายการที่พบโดยทั่วไปการตรวจสอบเมื่อคุณกำลัง investigating ประสิทธิภาพการทำงานแบบสอบถาม

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

การตรวจสอบการมีอยู่ของดัชนีที่แก้ไข

การวิเคราะห์ดัชนีเช็คแรกเพื่อดำเนินการเมื่อคุณพบเวลาการดำเนินการแบบสอบถามที่ช้าลงอย่างใดอย่างหนึ่งได้ ในกรณีที่คุณกำลัง investigating แบบสอบถามหนึ่ง คุณสามารถใช้การทำการวิเคราะห์การทำดัชนีตัวเลือกในตัววิเคราะห์คำถาม SQL ถ้าคุณมีการสืบค้นกลับการ Profiler SQL ของปริมาณที่มีขนาดใหญ่ได้ คุณสามารถใช้ตัวช่วยสร้างปรับค่าดัชนีได้ ทั้งสองวิธีใช้ optimizer การสอบถาม SQL Server เพื่อระบุดัชนีที่น่าจะเป็นประโยชน์สำหรับการสอบถามที่ระบุ นี่คือวิธีที่มีประสิทธิภาพมากสำหรับการกำหนดว่า ดัชนีที่ถูกต้องที่มีอยู่ในฐานข้อมูลของคุณ

สำหรับข้อมูลเกี่ยวกับวิธีการใช้ตัวช่วยสร้างปรับค่าดัชนี ให้ดูที่หัวข้อ "ตัวช่วยปรับค่าสร้างดัชนี" ใน SQL Server 7.0 หนังสือออนไลน์

ถ้าคุณมีการปรับรุ่นโปรแกรมประยุกต์ของคุณจากรุ่นก่อนหน้าของ SQL Server ดัชนีที่แตกต่างกันอาจมีประสิทธิภาพมากขึ้นใน SQL Server 7.0 เนื่องจากความ optimizer และการเปลี่ยนแปลงของเอ็นจินการเก็บข้อมูล ตัวช่วยสร้างปรับค่าดัชนีช่วยให้คุณตรวจสอบว่า มีการเปลี่ยนแปลงในกลยุทธ์ในการทำดัชนีจะปรับปรุงประสิทธิภาพ

ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีการใช้โปรแกรมช่วยแนะฐานข้อมูลโปรแกรมปรับค่านำแทนการใช้ตัวช่วยการปรับค่าสร้างดัชนีใน SQL Server 2005 หัวข้อต่อไปนี้ใน SQL Server 2005 หนังสือออนไลน์:
  • โปรแกรมโปรแกรมช่วยแนะนำที่ปรับแต่งความแตกต่างระหว่างฐานข้อมูล และตัวช่วยสร้างการปรับแต่งการจัดทำดัชนี
  • บทช่วยสอนตัวแนะนำการปรับค่าโปรแกรมของฐานข้อมูล

เอาออกทั้งหมดแบบสอบถามแบบ ตาราง และคำแนะนำในการเข้าร่วม

คำแนะนำแทนที่การปรับให้เหมาะสมของแบบสอบถาม และสามารถป้องกันไม่ให้ optimizer แบบสอบถามการเลือกแผนการดำเนินการที่เร็วที่สุด เนื่องจากการเปลี่ยนแปลง optimizer คำแนะนำอาจไม่มีผลต่อประสิทธิภาพการทำงานที่ปรับปรุงใน SQL Server รุ่นก่อนหน้า หรือจริงมากอาจส่งผลกระทบต่อประสิทธิภาพการทำงานใน SQL Server 7.0 นอกจากนี้ คำแนะนำในการเข้าร่วมสามารถทำให้เกิดการลดประสิทธิภาพการทำงานตามค่าเนื่องจากสาเหตุต่อไปนี้:
  • คำแนะนำในการเข้าร่วมป้องกันการสอบถามเฉพาะกิจจากจะเหมาะสำหรับ parameterization อัตโนมัติ และการแคของแผนการสอบถาม
  • เมื่อคุณใช้คำแนะนำในการเข้าร่วม นั้นเท่าที่คุณต้องการบังคับใบสั่งเข้าร่วมสำหรับตารางทั้งหมดในแบบสอบถาม ถึงแม้ว่าตัวเชื่อมเหล่านั้นไม่ได้เปิดใช้คำแนะนำ
ถ้าแบบสอบถามที่คุณกำลังวิเคราะห์ประกอบด้วยคำแนะนำใด ๆ เอาออก และ re-evaluate ประสิทธิภาพการทำงานแล้ว

แผนการดำเนินการตรวจสอบ

หลังจากที่คุณยืนยันว่า มีดัชนีที่ถูกต้อง และไม่มีคำแนะนำจะจำกัดของ optimizer ความสามารถในการสร้างแผนการมีประสิทธิภาพ คุณสามารถตรวจสอบข้อความแสดงแผนการดำเนินการแบบสอบถาม คุณสามารถใช้การใช้วิธีการต่อไปนี้เพื่อดูแผนการดำเนินการสำหรับการสอบถาม:
  • Profiler sql

    จับถ้าคุณภาพนั้นแผน MISC:Executionเหตุการณ์ใน Profiler SQL มันจะเกิดขึ้นทันทีก่อนการStmtCompletedเหตุการณ์สำหรับแบบสอบถามสำหรับกระบวนการเฉพาะระบบ ID (SPID)
  • ตัววิเคราะห์คำถาม sql: Showplan ที่แสดงเป็นรูปภาพ

    มีแบบสอบถามที่เลือกในหน้าต่างการสอบถาม คลิกการแบบสอบถามเมนู แล้วคลิกแผนการดำเนินการที่ประเมินจอแสดงผล.

    หมายเหตุ:: ถ้ากระบวนงานที่เก็บไว้หรือชุดงานสร้าง และการอ้างอิงถึงตารางชั่วคราว คุณต้องใช้คำชี้แจงสิทธิ์ส่วนกำหนดค่าสถิติ SET ON หรือสร้างตารางชั่วคราวได้ก่อนที่คุณแสดงแผนการดำเนินการ
  • SHOWPLAN_ALL and SHOWPLAN_TEXT

    To receive a text version of the estimated execution plan, you can use the SET SHOWPLAN_ALL and SET SHOWPLAN_TEXT options. See the "SET SHOWPLAN_ALL (T-SQL)" and "SET SHOWPLAN_TEXT (T-SQL)" topics in SQL Server 7.0 Books Online for more details.

    หมายเหตุ:: If the stored procedure or batch creates and references temporary tables, you must use the SET STATISTICS PROFILE ON option or explicitly create the temporary tables before displaying the execution plan.
  • STATISTICS PROFILE

    When you are displaying the estimated execution plan, either graphically or by using SHOWPLAN, the query is not actually executed. Therefore, if you create temporary tables in a batch or a stored procedure, you cannot display the estimated execution plans because the temporary tables will not exist. STATISTICS PROFILE executes the query first, and then displays the actual execution plan. See the "SET STATISTICS PROFILE (T-SQL)" topic in SQL Server 7.0 Books Online for more details. When it is running in SQL Query Analyzer, this appears in graphical format on theแผนการดำเนินการtab in the results pane.
For more information about how to display the estimated execution plan in SQL Server 2005, see the "How to display the estimated execution plan" topic in SQL Server 2005 Books Online.

Examine the Showplan Output

Showplan output provides a lot of information about the execution plan that SQL Server is using for a particular query. The details of the information and events that are generated are discussed in detail in the "Optimizing Database Performance" chapter of SQL Server 7.0 Books Online. The following are some basic aspects of the execution plan that you can view to determine whether you are using the best plan:
  • Correct Index Usage

    The showplan output displays each table that is involved in the query and the access path that is used to obtain data from it. With graphical showplan, move the pointer over a table to see the details for each table. If an index is in use, you see "Index Seek"; if an index is not in use, you see either "Table Scan" for a heap or "Clustered Index Scan" for a table that has a clustered index. "Clustered Index Scan" indicates that the table is being scanned through the clustered index,ไม่that the clustered index is being used to directly access individual rows.

    If you determine that a useful index exists and it is not being used for the query, you can try forcing the index by using an index hint. See the "FROM (T-SQL)" topic in SQL Server Books Online for more details about index hints.
  • Correct Join Order

    The showplan output indicates in what order tables that are involved in a query are being joined. For nested loop joins, the upper table that is listed is the outer table and it should be the smaller of the two tables. For hash joins, the upper table becomes the build input and should also be the smaller of the two tables. However, note that the order is less critical because the query processor can reverse build and probe inputs at run time if it finds that the optimizer made a wrong decision. You can determine which table returns fewer rows by checking the Row Count estimates in the showplan output.

    If you determine that the query may benefit from a different join order, you can try forcing the join order with a join hint. See the "FROM (T-SQL)" topic in SQL Server 7.0 Books Online for more details about join hints.

    หมายเหตุ:: Using a join hint in a large query implicitly forces the join order for the other tables in the query as if FORCEPLAN was set.
  • Correct Join Type

    sql Server ใช้การวนซ้ำซ้อนกัน แฮ และผสานรวม ถ้าแบบสอบถามกำลังทำช้าใช้เทคนิคการเข้าร่วมหนึ่งไปยังอีก คุณสามารถลองการบังคับให้ชนิดการเข้าร่วมที่แตกต่างกัน ตัวอย่างเช่น ถ้าแบบสอบถามจะใช้การเข้าร่วมแฮ คุณสามารถบังคับการเข้าร่วม loops ที่ซ้อนกัน โดยใช้คำใบ้เข้าร่วมการวนรอบ ดูหัว "จาก (T-SQL)" ข้อใน SQL Server 7.0 หนังสือออนไลน์สำหรับรายละเอียดเพิ่มเติมในคำแนะนำในการเข้าร่วม

    หมายเหตุ:: ใช้คำแนะนำในการเข้าร่วมในการสอบถามที่มีขนาดใหญ่ implicitly บังคับให้ชนิดการเข้าร่วมสำหรับตารางอื่นในการสอบถามว่ามีการตั้งค่า FORCEPLAN
  • ดำเนินการแบบขนาน

    ตรวจถ้าคุณกำลังใช้คอมพิวเตอร์แบบมัลติโปรเซสเซอร์ คุณสามารถจะสอบว่า แผนการแบบขนานถูกใช้งาน ถ้า parallelism ใช้อยู่ คุณเห็นคำparallelismเหตุการณ์ (gather กระแสข้อมูล) ถ้าแบบสอบถามเฉพาะช้าลงเมื่อคุณกำลังใช้แผนการแบบขนาน คุณสามารถลองการบังคับให้แผนการขนานไม่ใช่ โดยใช้คำแนะนำตัวเลือก (MAXDOP 1) ดูหัว "SELECT (T SQL)" ข้อใน SQL Server 7.0 หนังสือออนไลน์สำหรับรายละเอียดเพิ่มเติม
ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีการใช้การแสดงผลของแผนการดำเนินการ Showplan ใน SQL Server 2005 หัวข้อต่อไปนี้ใน SQL Server 2005 หนังสือออนไลน์:
  • วิธีการที่จะบันทึกแผนการดำเนินการในรูปแบบ XML
  • Showplans xml
  • การรักษาความปลอดภัย Showplan
ข้อควรระวัง: เนื่อง จาก optimizer แบบสอบถามโดยทั่วไปแล้วเลือกแผนการดำเนินการที่ดีที่สุดสำหรับการสอบถาม Microsoft recommends ที่คุณใช้คำแนะนำในการเข้าร่วม คำแนะนำในการสอบถาม และคำแนะนำของตารางเท่านั้นเป็นวิธีสุดท้าย และ ถ้าคุณเป็นผู้ดูแลฐานข้อมูลประสบการณ์ที่

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

หัวข้อต่อไปนี้ใน SQL Server 7.0 หนังสือออนไลน์ให้ข้อมูลเกี่ยวกับการสอบถาม optimizing:
  • "optimizing ประสิทธิภาพโปรแกรมประยุกต์ที่เรียกข้อมูลที่มีประสิทธิภาพในการใช้"
  • "แบบสอบถามปรับค่า"
  • "คำแนะนำที่ปรับแต่งแบบสอบถาม"
  • "เคล็ดลับ transact sql"

คุณสมบัติ

หมายเลขบทความ (Article ID): 243589 - รีวิวครั้งสุดท้าย: 8 มกราคม 2554 - Revision: 3.0
ใช้กับ
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL 2005 Server Workgroup
Keywords: 
kbhowtomaster kbmt KB243589 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:243589

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

 

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