Производительность Sql Transaction NetWork

Вы можете просто зарегистрировать IP ($ _SERVER ['REMOTE_ADDR']) и запретить повторную валидацию с помощью этого IP-адреса в течение 1 минуты или, более точно, начать сеанс, предоставить идентификатор без вашего посетителя и запретить повторную проверку на 1 минута (или больше, но бот не любит ждать).

0
задан daa sssa 13 July 2018 в 09:33
поделиться

2 ответа

Чем короче замок, тем лучше. Длинные транзакции могут привести к снижению производительности (длительный ресурс ожидания) и взаимоблокировке. Если вы не планируете точно обрабатывать прохождение «трех» запросов, то лучше будет первый вариант.

Откат, если ошибка в одном из них

TRY
BEGIN
    Begin Transaction;
    Insert into Customers (name) values (Name1);
    Insert into Customers (name) values (Name2);
    Insert into Customers (name) values (Name3);
    Commit;
END
CATCH
BEGIN
    THROW;
    ROLLBACK;
END
0
ответ дан TaPaKaH UA 17 August 2018 в 13:16
поделиться
  • 1
    Да, но что, если третий запрос не удастся? Я не хочу, чтобы отсутствовали данные в моей базе данных, мне нужно выполнить все из них. – daa sssa 13 July 2018 в 09:55
  • 2
    Что вы будете делать, если один из запросов возвращен с ошибкой? – TaPaKaH UA 13 July 2018 в 10:06
  • 3
    Возможно, я удалю других? Но что это быстрее? удалить других или использовать транзакцию? – daa sssa 13 July 2018 в 10:11

Операция SQL всегда выполняется в транзакции. Если вы не запускаете его явно, каждый оператор SQL будет выполняться в транзакции сам по себе.

Единственный выбор - объединить несколько операторов в одну транзакцию. Транзакции, охватывающие несколько операторов, оставляют блокировки, которые вредят параллелизму. Поэтому «всегда» создание транзакций - это не очень хорошая идея. Вы должны балансировать стоимость с выгодой.

Вы можете получить дополнительную информацию: https://dba.stackexchange.com/questions/43254/is-it-a-bad-practice- к-всегда-Create-A-сделки

0
ответ дан Anant Dabhi 17 August 2018 в 13:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: