Какой лучший выбор в delete-insert и if-update else-insert?

Обновление :

Моя проблема ... У меня есть первичный ключ для этих таблиц .. Я не имел в виду дальнейшего индексирования в настоящее время на таблицы. У нас может быть это в будущее, увидев производительность и поскольку у нас слишком много фильтров для данных в получение данных не показало значительного улучшения индексации в прошлый раз, когда мы запускали базу данных настройка.

У меня есть 4 огромных таблицы с миллионами записей. Теперь есть хранимая процедура, которая часто вызывается и обновляет эту таблицу. Вот сценарий -

Теперь, если запись существует на сегодня, мне нужно обновить ее на сегодня, иначе, если запись для пользователя отсутствует, мне нужно продолжить и вставить запись для пользователя. Теперь есть два способа выполнить это, так как есть один процесс, который это делает -

Первый способ -

IF EXISTS(TABLE1)
--UPDATE where condn
ELSE
--INSERT
IF EXISTS(TABLE2)
--UPDATE where condn
ELSE
--INSERT
IF EXISTS(TABLE3)
--UPDATE where condn
ELSE
--INSERT
IF EXISTS(TABLE4)
--UPDATE where condn
ELSE
--INSERT

Второй способ -

DELETE from TABLE1 where condn
DELETE from TABLE2 where condn
DELETE from TABLE3 where condn
DELETE from TABLE4 where condn

INSERT TABLE1 ENTRY
INSERT TABLE2 ENTRY
INSERT TABLE3 ENTRY
INSERT TABLE4 ENTRY

Второй способ выглядит проще, но может занять больше времени. .. Я не уверен, какой путь здесь лучший. Может ли кто-нибудь помочь или направить меня сюда ... спасибо!

6
задан Vishal 2 December 2010 в 20:14
поделиться