Генерация рядов без петель - PullRequest
0 голосов
/ 24 марта 2019

Microsoft показала довольно интересную демонстрацию (https://www.youtube.com/watch?v=oEpJB87Xg9U),, где они генерируют 5 миллионов строк для пустой таблицы

screenshot

Как я вижунет циклов или ссылок на другие таблицы с 5 миллионами строк. Я ожидаю, что здесь 10 строк. Что мне здесь не хватает?

1 Ответ

1 голос
/ 24 марта 2019

Предложение FROM использует синтаксис соединения старого стиля с a CTE, указанным 9 раз. Фактически это CROSS JOIN декартово произведение 10-рядного CTE, так что генерируется 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 строк, но возвращается только 5000000 из-за предложения TOP.

См. этот ответ для примера этой техники с использованием более нового синтаксиса CROSS JOIN, который генерировал 2 миллиарда строк за 6 минут на моем боксе.

...