2
ใช้มุมมองที่จัดทำดัชนีไว้สำหรับการรวม - ดีเกินจริงหรือ?
เรามีคลังข้อมูลที่มีจำนวนเรกคอร์ดที่ค่อนข้างใหญ่ (10-20 ล้านแถว) และมักเรียกใช้คิวรีที่นับเร็กคอร์ดระหว่างวันที่แน่นอนหรือนับจำนวนเรกคอร์ดด้วยค่าสถานะที่แน่นอนเช่น SELECT f.IsFoo, COUNT(*) AS WidgetCount FROM Widgets AS w JOIN Flags AS f ON f.FlagId = w.FlagId WHERE w.Date >= @startDate GROUP BY f.IsFoo ประสิทธิภาพไม่น่ากลัว แต่อาจค่อนข้างเชื่องช้า (อาจใช้เวลา 10 วินาทีในแคชเย็น) เมื่อเร็ว ๆ นี้ฉันค้นพบว่าฉันสามารถใช้GROUP BYในมุมมองที่จัดทำดัชนีและลองใช้บางสิ่งที่คล้ายกับต่อไปนี้ CREATE VIEW TestView WITH SCHEMABINDING AS SELECT Date, FlagId, COUNT_BIG(*) AS WidgetCount FROM …