我在给定查询中遇到记录顺序问题。
SELECT
EA.eaid, --int , PK of table1
EA.an, --varchar(max)
EA.dn, --varchar(max)
ET.etid, --int
ET.st --int
FROM dbo.table1 EA
JOIN dbo.table2 ET ON EA.etid = ET.etid
JOIN @tableAttribute TA ON EA.eaid = TA.id -- TA.id is int and is not a PK
ORDER BY ET.st
ET.st 列的值对于给定场景中的所有记录都是相同的。
查询给出的记录顺序在更新统计信息时随机变化。有时它按 EA.eaid 的顺序排列,有时按 TA.id 的顺序排列。
请解释这种行为。统计数据如何影响这里的排序?
我正在使用 sql server 2008 R2。