TeraData sql中“TOP”和“SAMPLE”有什么区别?它们是一样的吗?
解决方法
从
TOP vs SAMPLE开始:
TOP 10 means “first 10 rows in sorted
order”. If you don’t have an ORDER BY,
then by extension it will be
interpreted as asking for “ANY 10
rows” in any order. The optimizer is
free to select the cheapest plan it
can find and stop processing as soon
as it has found enough rows to return.If this query is the only thing
running on your system,TOP may appear
to always give you exactly the same
answer,but that behavior is NOT
guaranteed.SAMPLE,as you have observed,does extra processing to try to randomize the result set yet maintain the same approximate distribution. At a very simple level,for example,it could pick a random point at which to start scanning the table and a number of rows to skip between rows that are returned.