คำถามติดแท็ก query-store

1
SQL Server 2016 Bad Query Plan ล็อคฐานข้อมูลสัปดาห์ละครั้ง
สัปดาห์ละครั้งในช่วง 5 สัปดาห์ที่ผ่านมาในช่วงเวลาเดียวกันของวัน (เช้าตรู่อาจขึ้นอยู่กับกิจกรรมของผู้ใช้เมื่อผู้คนเริ่มใช้งาน), SQL Server 2016 (AWS RDS, มิร์เรอร์) เริ่มจับเวลาจำนวนมาก คำสั่ง ปรับปรุงสถิติในตารางทั้งหมดแก้ไขได้ทันที หลังจากครั้งแรกฉันทำให้มันอัปเดตสถิติทั้งหมดในทุกตารางทุกคืน (แทนที่จะเป็นรายสัปดาห์) แต่มันยังคงเกิดขึ้น (ประมาณ 8 ชั่วโมงหลังจากสถิติการอัปเดตทำงาน แต่ไม่ใช่ทุกวันที่มันทำงาน) ครั้งล่าสุดที่ฉันเปิดใช้งาน Query Store เพื่อดูว่าฉันสามารถค้นหาแผนแบบสอบถาม / แบบสอบถามที่เฉพาะเจาะจงได้หรือไม่ ฉันคิดว่าฉันสามารถ จำกัด ให้แคบลงหนึ่ง: หลังจากค้นหาข้อความค้นหานั้นฉันได้เพิ่มดัชนีที่แนะนำซึ่งขาดหายไปจากแบบสอบถามที่ไม่ได้ใช้บ่อยครั้งนี้ แผนแบบสอบถามที่ไม่ถูกต้องกำลังทำการสแกนดัชนี (บนตารางที่มีแถว 10k เท่านั้น) แผนคิวรีอื่น ๆ ที่ส่งคืนหน่วยเป็นมิลลิวินาทีใช้ในการสแกนแบบเดียวกัน แผนแบบสอบถามใหม่ล่าสุดหลังจากสร้างดัชนีใหม่จะค้นหาเท่านั้น แต่ถึงแม้จะไม่มีดัชนีนั้นก็ 99% ของเวลา แต่มันกลับมาภายในเวลาไม่กี่มิลลิวินาที แต่จากนั้นทุกสัปดาห์จะใช้เวลา> 40 วินาที แย่มากที่หมดเวลา: http://brentozar.com/pastetheplan/?id=rymaWt56e แผนก่อนหน้าซึ่งไม่หมดเวลา: http://brentozar.com/pastetheplan/?id=HyN7ftcpe แผนใหม่ล่าสุดพร้อมดัชนีใหม่: …

1
บังคับให้ใช้แผนที่สำหรับบุคคลที่สองที่อ่านได้
หากมีการบังคับใช้แผนหลักในกลุ่มความพร้อมใช้งานจะมีการนำไปใช้กับคิวรีที่เรียกใช้บนรองหรือไม่? ฉันกำลังมองหาคำตอบที่ครอบคลุมความเป็นไปได้ทั้งในการวางแผนบังคับ: แนวทางการวางแผน แผนบังคับใช้ Query Store ฉันได้อ่านสิ่งต่อไปนี้ที่แนะนำแผนการบังคับใช้ QS ไม่ได้ดำเนินการ แต่ไม่พบสิ่งใดที่เชื่อถือได้ในเอกสารประกอบ Query Store และกลุ่มความพร้อมใช้งานโดย Erin Stellato แบบสอบถามข้อมูลที่เก็บบังคับพฤติกรรมแผนบนรอง AlwaysOn สามารถอ่านได้โดย Vikas Rana หลักฐานการบังคับจะมีการปรากฏตัวของUse PlanหรือPlanGuideNameและPlanGuideDBคุณสมบัติในการวางแผนการดำเนินการรอง

1
ฟีเจอร์ Plan Query Store Force ไม่ทำงาน
คุณลักษณะแผนของ Query Store Force ไม่ได้บังคับใช้แผน ฉันรู้ร้านแบบสอบถาม - บังคับไม่ได้หมายความว่าบังคับ ; อย่างไรก็ตามแผนของฉันอาจไม่เปลี่ยนแปลงอย่างมีนัยสำคัญ แต่เครื่องมือเพิ่มประสิทธิภาพการสืบค้นอาจเลือกดัชนีที่ไม่ถูกต้องตัวเลือกการวนซ้ำเป็นต้น โดยพื้นฐาน: มันไม่เป็นไปตามแผนบังคับของฉัน ผมเคยบังคับแผนจำนวนมากและมันก็ไม่ได้ทำงาน มีอยู่ 0 sys.query_store_plan force_failure_countข้อหาล้มเหลวหรือเหตุผลคือเมื่อฉันมองไปที่ เหตุการณ์ที่ขยายquery_store_plan_forcing_failedไม่ได้ให้ผลใด ๆ 0 เหตุการณ์ ตัวอย่างเช่นแผนซึ่งบังคับใช้เมื่อ 20.09 มีเพียงการรวบรวม 1 ครั้งเท่านั้นที่ใช้แผนการบังคับ แผนแตกต่างกันอย่างมากแผนการหนึ่งที่ใช้การจับคู่แฮชเข้าร่วมกับ INDEX 1 และอีกแผนการใช้การเข้าร่วมแบบวนรอบกับ INDEX 2 รุ่น: Microsoft SQL Server 2016 (SP1-GDR) (KB3210089) - 13.0.4202.2 (X64) ฉันหายไปนี่อะไร

1
คำว่า "unmentionable" ใน SQL คืออะไร?
คำว่า "unmentionable" ใน SQL คืออะไร? ฉันกำลังอ่านsys.query_store_query_text (Transact-SQL)และฉันเห็นสิ่งต่อไปนี้ดังนั้นฉันจึง google {SQL "unmentionable" คำ} has_restricted_text บิต ข้อความแบบสอบถามมีรหัสผ่านหรือคำอื่น ๆ ที่ไม่สามารถกล่าวถึงได้ ลิงก์อื่น ๆ จากนั้น 3 ลิงก์ที่นำฉันกลับไปยังที่ที่ฉันพบฉันไม่พบสิ่งใดที่แสดงความสัมพันธ์กับรหัสผ่านหรือสิ่งใดก็ตามที่ SQL อาจสนใจ

1
ทำไมการเข้าร่วมการกำจัดไม่ทำงานกับ sys.query_store_plan
ต่อไปนี้เป็นการทำให้เข้าใจง่ายของปัญหาประสิทธิภาพที่พบกับ Query Store: CREATE TABLE #tears ( plan_id bigint NOT NULL ); INSERT #tears (plan_id) VALUES (1); SELECT T.plan_id FROM #tears AS T LEFT JOIN sys.query_store_plan AS QSP ON QSP.plan_id = T.plan_id; plan_idคอลัมน์เป็นเอกสารที่เป็นคีย์หลักของsys.query_store_planแต่แผนปฏิบัติการไม่ได้ใช้เข้าร่วมการกำจัดเป็นที่คาดว่าจะ: ไม่มีการคาดการณ์คุณลักษณะจาก DMV คีย์หลัก DMV plan_idไม่สามารถซ้ำแถวจากตารางชั่วคราวได้ A LEFT JOINถูกใช้ดังนั้นจึงไม่Tสามารถลบแถวออกได้ แผนการดำเนินการ เหตุใดจึงเป็นเช่นนี้และสิ่งใดที่สามารถทำได้เพื่อรับการเข้าร่วมการกำจัดที่นี่

2
ไม่สิ้นสุดการค้นหาใน Query Store
ฉันจะบอกตั้งแต่ต้นว่าคำถาม / ปัญหาของฉันมีลักษณะคล้ายกับนี้ก่อนหน้านี้หนึ่ง แต่เนื่องจากผมไม่แน่ใจว่าถ้าสาเหตุหรือข้อมูลเริ่มต้นเหมือนกันฉันตัดสินใจที่จะโพสต์คำถามของฉันที่มีรายละเอียดบางอย่างมากขึ้น ปัญหาในมือ: ในเวลาไม่กี่ชั่วโมง (ใกล้ถึงสิ้นวันทำการ) ตัวอย่างการผลิตจะเริ่มทำงานผิดปกติ: CPU สูงสำหรับอินสแตนซ์ (จากพื้นฐานประมาณ 30% มันจะเพิ่มขึ้นเป็นสองเท่าและยังคงเติบโตอยู่) เพิ่มจำนวนธุรกรรม / วินาที (แม้ว่าการโหลดแอปจะไม่เห็นการเปลี่ยนแปลงใด ๆ ) เพิ่มจำนวนเซสชันว่าง เหตุการณ์การบล็อกแปลก ๆ ระหว่างเซสชันที่ไม่เคยแสดงพฤติกรรมนี้ (แม้จะอ่านเซสชันที่ไม่มีข้อผูกมัดก็ทำให้เกิดการบล็อก) การรอช่วงบนสุดเป็นช่วงที่ไม่ใช่การสลักหน้าในอันดับที่ 1 โดยมีการล็อกตำแหน่งที่ 2 การตรวจสอบเบื้องต้น: การใช้ sp_whoIsActive เราเห็นว่าการสืบค้นที่ดำเนินการโดยเครื่องมือตรวจสอบของเราตัดสินใจที่จะทำงานช้ามากและจับ CPU จำนวนมากสิ่งที่ไม่เคยเกิดขึ้นมาก่อน ระดับการแยกของมันถูกอ่านปราศจากข้อผูกมัด เราดูแผนที่เราเห็นตัวเลขที่แปลกประหลาด: StatementEstRows = "3.86846e + 010" โดยมีข้อมูลประมาณ 150 TB เพื่อส่งคืน เราสงสัยว่าคุณลักษณะการตรวจสอบข้อความค้นหาของเครื่องมือตรวจสอบนั้นเป็นสาเหตุดังนั้นเราจึงปิดการใช้งานคุณลักษณะนี้ (เราได้เปิดตั๋วกับผู้ให้บริการของเราเพื่อตรวจสอบว่าพวกเขาตระหนักถึงปัญหาใด ๆ หรือไม่) จากเหตุการณ์แรกนั้นมันเกิดขึ้นอีกสองสามครั้งทุกครั้งที่เราฆ่าเซสชันทุกอย่างกลับสู่ปกติ …

4
SQL Server Query Store - การสืบค้นคำว่า 'เฉพาะกิจ' คืออะไร
ฉันดำน้ำลึกลงไปใน SQL Server Query Store และฉันมักจะเห็นการอ้างอิงถึงคำสั่ง 'เฉพาะกิจ' อย่างไรก็ตามฉันไม่เห็นสิ่งที่ Query Store กำหนดคิวรีแบบเฉพาะกิจ ฉันเคยเห็นสถานที่ที่สามารถอนุมานได้ว่าเป็นแบบสอบถามโดยไม่มีพารามิเตอร์หรือแบบสอบถามดำเนินการเพียงครั้งเดียว คำจำกัดความที่เป็นทางการมีอยู่สำหรับสิ่งนี้หรือไม่? โดยทั่วไปฉันไม่ได้ตั้งใจ ฉันหมายถึงมันเกี่ยวข้องกับ Query Store ตัวอย่างเช่นหน้านี้แสดงตัวอย่างของการลบแบบสอบถาม ad-hoc ออกจากที่เก็บแบบสอบถาม แต่ปรากฏว่าเกณฑ์ที่ใช้คือการนับการดำเนินการเพียงครั้งเดียว นี่ดูเหมือนจะเป็นคำจำกัดความที่แปลกประหลาดของคำค้นหาเฉพาะกิจ BTW หากคุณไปที่หน้าให้ค้นหา 'ลบคำค้นหาแบบเฉพาะกิจ'

2
การเปิดใช้ Query Store บน msdb มีประโยชน์อย่างไร
ของที่เก็บแบบสอบถามฐานข้อมูลระบบ SQL (ต้นแบบรุ่น msdb, tempdb) สามารถใช้ได้บน msdb เท่านั้น ฉันค้นหาและไม่พบเอกสารใด ๆ เกี่ยวกับที่เก็บแบบสอบถามใน msdb แม้ว่าคุณจะไม่เห็นใน GUI แต่ก็สามารถตรวจสอบได้ในอินสแตนซ์ SQL 2016 ของคุณ Validate Query Store ปิดอยู่ USE msdb SELECT * FROM sys.database_query_store_options; เปิด Query Store USE [master] GO ALTER DATABASE msdb SET QUERY_STORE = ON GO ALTER DATABASE msdb SET QUERY_STORE (OPERATION_MODE = READ_WRITE …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.