Информация об изменениях

Сообщение Реляционная алгебра укакалась от 30.12.2016 1:18

Изменено 30.12.2016 1:19 Shmj

В продолжение темы
Автор: Shmj
Дата: 29.12.16
.

Решил пойти другим путем и разбить запрос на 2 части. Вот такой простой запрос получился:

UPDATE dbo.Spending
SET SourceTransferIndex = tn.[Index] * 100000 + SourceTransferLocalIndex
FROM dbo.[Transaction] tn
WHERE tn.[Hash] = Spending.SourceTransactionHash


Индексы есть на tn.[Hash] и Spending.SourceTransactionHash (то есть объединяем индексированые поля, конечно, тип данных одинаковый).

Ну что может быть проще? Даже в простом хранилище ключ-значение очень просто выполнить такую операцию -- выберай порцию данных из dbo.Spending, находи по ключу [Hash] данные в dbo.[Transaction] и обновляй выбранные Spending. Что сложного? Делай порциями, диска вообще не требует.

И что вы думаете? MS SQL начала чего то мутить целый час, съела все место на диске и завершила работу с ошибкой. Ну дебилизм же
В продолжение темы
Автор: Shmj
Дата: 29.12.16
.

Решил пойти другим путем и разбить запрос на 2 части. Вот такой простой запрос получился:

UPDATE dbo.Spending
SET SourceTransferIndex = tn.[Index] * 100000 + SourceTransferLocalIndex
FROM dbo.[Transaction] tn
WHERE tn.[Hash] = Spending.SourceTransactionHash


Индексы есть на tn.[Hash] и Spending.SourceTransactionHash (то есть объединяем индексированые поля, конечно, тип данных одинаковый).

Ну что может быть проще? Даже в простом хранилище ключ-значение очень просто выполнить такую операцию -- выберай порцию данных из dbo.Spending, находи по ключу [Hash] данные в dbo.[Transaction] и обновляй выбранные Spending. Что сложного? Делай порциями, диска вообще не требует.

И что вы думаете? MS SQL начала чего то мутить целый час, съела все место на диске и завершила работу с ошибкой нехватки места. Ну дебилизм же