2010-06-03 2 views
0

Я пытаюсь отлаживать некоторый унаследованный код Integration Services, и действительно хочу некоторое подтверждение о том, что я думаю, что проблема:Uncommitted читает в SSIS

У нас есть очень большая задача данных внутри контейнера потока управления. Этот контейнер потока управления настроен с поддержкой TransactionOption = - то есть он будет «наследовать» транзакции из родительских контейнеров, но ни один из них не настроен здесь.

Внутри поток данных есть вызов хранимой процедуры, которая записывает в таблицу с псевдо кодом что-то вроде:

«Если запись не существует, что соответствует этим параметрам затем записать его»

Теперь проблема состоит в том, что в этот процесс все три файла передаются с такими же параметрами, поэтому логически первая запись не находит совпадения и создается запись. Вторая запись (с теми же параметрами) также не находит совпадения и создается другая запись.

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

В этом случае я правильно понял, что это незафиксированная транзакция, которая останавливает второй вызов от первого? Даже установка уровня изоляции на контейнере не помогает, потому что она не завернута в транзакцию в любом случае ....

Надеюсь, что это имеет смысл, и любой совет с благодарностью получил. Рабочие круги наделяют вас божественным статусом.

ответ

2

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

+1

Согласитесь, реальное решение предотвращает наличие дубликатов inteh первого места. – HLGEM

+0

Это не дубликаты. Они представляют собой 3 дочерние записи, которые имеют родительский элемент, а потом дети используются в другом месте потока. – OldBoy

+1

@OldBoy Я понимаю, что они легитимны, но вы можете агрегировать часть потока, входящую в создание строк. –

0

Если изменения находятся внутри одной и той же транзакции, они должны быть видны друг другу. И я не думаю, что SSIS создаст транзакцию для каждого оператора/вызова SP, поэтому я считаю, что проблема в другом месте.

Смежные вопросы