ฉันเคยได้ยินการพูดถึงสถิติที่ SQL Server เก็บตามค่าเริ่มต้น พวกเขากำลังติดตามอะไรและฉันจะใช้ข้อมูลนี้เพื่อปรับปรุงฐานข้อมูลของฉันได้อย่างไร
ฉันเคยได้ยินการพูดถึงสถิติที่ SQL Server เก็บตามค่าเริ่มต้น พวกเขากำลังติดตามอะไรและฉันจะใช้ข้อมูลนี้เพื่อปรับปรุงฐานข้อมูลของฉันได้อย่างไร
คำตอบ:
สถิติเป็นรูปแบบของข้อมูลเมตาแบบไดนามิกที่ช่วยให้เครื่องมือเพิ่มประสิทธิภาพการสืบค้นสามารถทำการตัดสินใจได้ดีขึ้น ตัวอย่างเช่นหากมีเพียงหนึ่งโหลแถวในตารางดังนั้นจะไม่มีประเด็นใดที่ดัชนีจะทำการค้นหา คุณจะดีขึ้นกว่าเดิมเมื่อทำการสแกนแบบเต็มตาราง แต่ถ้าตารางเดียวกันโตเป็นล้านแถวคุณอาจจะดีกว่าถ้าใช้ดัชนี แต่ถ้าคุณค้นหาตารางนั้นในคอลัมน์ที่มีค่าที่ไม่ซ้ำกันน้อยมาก (เช่นอาจเป็นคอลัมน์ "เพศ" ที่มีเฉพาะ "M" หรือ "F") จริง ๆ แล้ว FTS อาจจะดีกว่าเพราะคุณจะ จำเป็นต้องดึงข้อมูลบล็อกใหม่เพื่อสร้างชุดผลลัพธ์ ตอนนี้พูดว่าตารางของคุณคือ 99% "M" และเพียง 1% "F" เราควร FTS ในกรณีหนึ่งหรือใช้ดัชนีในอีกกรณีหนึ่ง ตารางเดียวกันแบบสอบถามเดียวกัน อาจมีแผนแบบสอบถามแตกต่างกันสี่แผนขึ้นอยู่กับเนื้อหาของตาราง สิ่งต่าง ๆ เหล่านี้คือ "สถิติ" และเป็นข้อมูลส่วนบุคคลสำหรับแต่ละฐานข้อมูล - แม้แต่สองฐานข้อมูลที่มีโครงสร้างตารางและดัชนีที่เหมือนกันจะมีสถิติที่แตกต่างกัน
โดยสรุปในเครื่องมือฐานข้อมูลที่ทันสมัยมีการเพิ่มประสิทธิภาพการค้นหาสองประเภท: การเขียน SQL ใหม่ (การเพิ่มประสิทธิภาพตามกฎเช่นคอมไพเลอร์จะเขียน C ของคุณใหม่เพื่อให้มีประสิทธิภาพมากขึ้น) และเลือกเส้นทางที่ถูกต้องของข้อมูล เช่นคอมไพเลอร์ JIT ที่ระบุฮอตสปอตที่รันไทม์) คุณเพียงแค่ต้องกังวลเกี่ยวกับสิ่งนี้หากคุณเห็นเครื่องมือเพิ่มประสิทธิภาพข้อความค้นหาทำสิ่งที่ผิดอย่างชัดเจน (เช่นเลือก FTS เมื่อคุณรู้ว่าดัชนีจะดีขึ้น)
พวกเขาจะใช้โดยเพิ่มประสิทธิภาพการค้นหา (เอกสารใน MSDN) เพื่อติดตามการกระจายของค่าในการจัดทำดัชนีและ / หรือคอลัมน์
สิ่งที่คุณกังวลเพียงอย่างเดียวคือควรอัปเดตเป็นประจำ : เพียงปล่อยให้เอ็นจิ้น DB ทำงานสิ่งนั้น