Чтобы выбрать информацию, связанную со списком из сотен идентификаторов ... вместо того, чтобы делать огромный оператор выбора, я создаю временную таблицу, вставляю в нее идентификаторы, соединяю ее с таблицей, чтобы выбрать строки, соответствующие идентификаторам, затем удалить временную таблицу. По сути, это операция чтения, без каких-либо постоянных изменений в таблицах постоянной базы данных.
Я делаю это в транзакции, чтобы гарантировать, что временная таблица будет удалена, когда я закончу. У меня вопрос ... что происходит, когда я совершаю такую транзакцию против того, чтобы она откатилась назад?
С точки зрения производительности ... должен ли механизм БД выполнять больше работы для отката транзакции по сравнению с ее совершением? Есть ли какая-то разница, так как единственные изменения сделаны для временной таблицы?
Смежный вопрос здесь, но он не отвечает на мой конкретный случай с временными таблицами: Стоит ли фиксировать или откатывать транзакцию чтения?
РЕДАКТИРОВАТЬ (разъяснение вопроса):
Не ищите совета до момента фиксации / отката. Сделка абсолютно необходима. Предположим, никаких ошибок не происходит. Предположим, что я создал временную таблицу, предположим, что я знаю, что произошла настоящая «рабочая» запись в базу данных tempdb, предположим, что я выполняю операции «только чтение» (select) в транзакции, и предполагаю, что я выполняю оператор delete для временной таблицы. После всего этого ... что дешевле, коммит или откат, и почему? Какую ДРУГУЮ работу может выполнить механизм db в ТОТ ТОЧКЕ для фиксации или отката на основе этого конкретного сценария, включающего временные таблицы и другие операции, доступные только для чтения?