Разница между «TOP» и «SAMPLE» в TeraData SQL - PullRequest
7 голосов
/ 16 июня 2011

В чем разница между "TOP" и "SAMPLE" в TeraData SQL? Они одинаковые?

Ответы [ 2 ]

13 голосов
/ 16 июня 2011

С ТОП против ОБРАЗЦА :

ТОП 10 означает «первые 10 строк в отсортированном заказать ". Если у вас нет ORDER BY, тогда по расширению это будет интерпретировать как просить "ЛЮБОЙ 10 строки "в любом порядке. Оптимизатор бесплатно выбрать самый дешевый план может найти и остановить обработку, как только так как он нашел достаточно строк для возврата.

Если этот запрос является единственным работает в вашей системе, может появиться TOP всегда давать вам точно то же самое ответьте, но это поведение НЕ гарантировано.

SAMPLE, как вы заметили, делает дополнительная обработка, чтобы попытаться рандомизировать результирующий набор все же поддерживать тот же примерное распределение. В очень простой уровень, например, это может выбрать случайную точку, с которой начать сканирование стола и ряда пропустить строки между строками, которые вернулся.

0 голосов
/ 10 февраля 2019

Команда 'Sample':

Sel * from tablename
sample 100

Это даст вам выборку из 100 различных записей из таблицы.Команда SAMPLE будет выдавать РАЗНЫЕ результаты каждый раз, когда вы ее запускаете.

TOP команда:

sel top 100 * from tablename;

Это даст первые 100 строк таблицы.Команда TOP даст вам те же результаты при каждом запуске.

...