คำถามติดแท็ก top

1
SELECT TOP 1 จากตารางที่มีขนาดใหญ่มากในคอลัมน์ดัชนีนั้นช้ามาก แต่ไม่ใช่ด้วยลำดับย้อนกลับ (“ desc”)
เรามีฐานข้อมูลขนาดใหญ่ประมาณ 1TB ใช้ SQL Server 2014 บนเซิร์ฟเวอร์ที่ทรงพลัง ทุกอย่างทำงานได้ดีไม่กี่ปี ประมาณ 2 สัปดาห์ที่ผ่านมาเราทำการบำรุงรักษาอย่างสมบูรณ์ซึ่งรวมถึง: ติดตั้งอัปเดตซอฟต์แวร์ทั้งหมด สร้างดัชนีและไฟล์ฐานข้อมูลขนาดกะทัดรัดทั้งหมด อย่างไรก็ตามเราไม่ได้คาดหวังว่าในบางช่วงการใช้งาน CPU ของ DB จะเพิ่มขึ้นมากกว่า 100% เป็น 150% เมื่อการโหลดจริงเหมือนกัน หลังจากการแก้ไขปัญหาจำนวนมากเราได้ จำกัด ให้แคบลงเป็นคำถามที่ง่ายมาก แต่เราไม่พบวิธีแก้ปัญหา การสืบค้นนั้นง่ายมาก: select top 1 EventID from EventLog with (nolock) order by EventID ใช้เวลาประมาณ 1.5 วินาทีเสมอ! อย่างไรก็ตามเคียวรีที่คล้ายกันที่มี "desc" จะใช้เวลาประมาณ 0 ms: select top 1 EventID …

3
DISTINCT ในหนึ่งคอลัมน์และกลับแถวบนสุด
คุณค้นหาลูกค้าที่ไม่ซ้ำใครสามรายที่มีจำนวนมากที่สุดได้Purchase_Costอย่างไร ฉันต้องการใช้DISTINCTเฉพาะในCustomer_Nameแต่แบบสอบถามด้านล่างใช้ความแตกต่างในคอลัมน์ทั้งสาม ฉันจะปรับเปลี่ยนแบบสอบถามเพื่อให้ได้ผลลัพธ์ที่ต้องการได้อย่างไร SELECT DISTINCT TOP 3 customer_name, order_no, Purchase_Cost FROM PurchaseTable ORDER BY Purchase_Cost
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.