кластеризованный индекс и загрузка данных в SSIS

Если исходная таблица имеет кластеризованный индекс по первичному ключу, будет ли выбор * из таблицы упорядочен по этому полю первичного ключа без необходимости указывать порядок в запросе для этого поля?

Мой второй вопрос: загружает ли SSIS таблицу с кластеризованным индексом первичного ключа исходной таблицы точно в том же порядке, что и в целевом?

Я просто хочу убедиться, что мои идентификационные ключи, которые я создаю для суррогатного ключа на основе первичного/бизнес-ключа, всегда вводятся в правильном порядке в источнике, а также в пункте назначения.

Спасибо


person abs786123    schedule 07.02.2017    source источник


Ответы (1)


SQL имеет нулевой внутренний порядок, если это явно не указано в предложении ORDER BY вашего запроса.

Нет никакой гарантии, что данные будут упорядочены по кластеризованному индексу при выборе. Вы можете запустить запрос 100 раз без ORDER BY -- и он будет таким же, но нет никаких обещаний, что в следующий раз он будет в таком порядке.

Если вы хотите, чтобы службы SSIS передавали данные между таблицами в определенном порядке, необходимо указать исходный запрос с предложением ORDER BY в потоке данных.

person Dave Cullum    schedule 07.02.2017
comment
Итак, скажем, если я закажу источник в потоке данных по этому первичному ключу, результаты всегда будут в правильном порядке в месте назначения? Наверняка 100% времени? Спасибо - person abs786123; 07.02.2017