То, сколько делает обертывание, вставляет в производительность справки транзакции на SQL-сервере?

Проблема в том, что вы пытаетесь использовать id в urls.rb до того, как он был определен в testcase.rb. Ваш код функционально эквивалентен следующему:

$event = "/sendmessage/#{id}"
id = 100
puts $event

Это не работает, потому что вы пытаетесь вызвать id до его определения. Сначала вы должны определить переменную:

id = 100
$event = "/sendmessage/#{id}"
puts $event

Здесь она работает, потому что вы определили id до , пытаясь вызвать ее.

При устранении неполадок, подобных этой, подумайте, как она должна работать, если вы не разделяете ее на разные файлы.

Поэтому, не зная больше о том, что вы пытаетесь достичь, просто убедитесь, что вы определили переменную , прежде чем попытаетесь ее вызвать.

9
задан Maksym Gontar 7 March 2009 в 12:21
поделиться

4 ответа

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

Транзакции о хранении Ваших последовательных данных. Это должно быть первой вещью, о которой Вы думаете при использовании транзакций. Например, если у Вас есть дебет (withdrawl) от Вашего текущего счета, Вы хотите удостовериться, что кредит (депозит) также сделан. Если любой из тех не успешно выполняется, целая "транзакция" должна откатываться. Поэтому оба действия ДОЛЖНЫ быть перенесены в транзакцию.

Когда выполнение пакета вставляет, разбейте их в к 3 000 или 5 000 записей и цикла через набор. 3000-5000 был сладкий диапазон числа для меня для вставок; не выходите за предел этого, если Вы не протестировали это, сервер может обработать его. Кроме того, я помещу GOS в пакет приблизительно в каждых 3 000 или 5 000 записей для вставок. Обновления и удаляют, я помещу ДВИЖЕНИЕ приблизительно в 1 000, потому что они требуют, чтобы больше ресурсов фиксировало.

Если Ваше выполнение этого из кода C#, то, по-моему, необходимо создать стандартную программу паектного импорта вместо того, чтобы делать миллионы вставок по одному посредством кодирования.

17
ответ дан 4 December 2019 в 06:49
поделиться

Как другие сказали, транзакции не имеют никакого отношения к производительности, но вместо этого имеют отношение к целостности Ваших данных.

Однако волнение по поводу производительности так или иначе, когда Вы только говорите о вставке 100 строк данных приблизительно 20 раз в месяц (значение 2 000 записей в месяц) глупо. Преждевременная оптимизация является пустой тратой времени; если Вы неоднократно не тестировали влияние производительности этих вставок (как маленький, как они, и как нечастые), и нашел, что они были главной проблемой, не волнуйтесь о производительности. Это незначительно по сравнению с другими вещами, которые Вы упомянули как являющийся загрузкой сервера.

3
ответ дан 4 December 2019 в 06:49
поделиться

Транзакции не для производительности, а для целостности данных. В зависимости от реализации там не будет реально никакое усиление/потеря производительности только для 100 строк (они просто будут зарегистрированы дополнительно, таким образом, они смогут все откатываться).

Вещи рассмотреть о проблемах производительности:

  • TAs будет взаимодействовать с другими запросами
    • запись TAs заблокирует кортежи/страницы/файлы
  • фиксации просто могли бы быть (в зависимости от протокола блокировки) обновлением метки времени
  • больше журналов могло бы быть записано для TAs (нужно смочь откатывать TAs, но DB экстенсивно уже мог бы зарегистрироваться, последовательный вход является дешевым),
  • степень изоляции (я знаю, что можно переключить этот уровень в некоторый DBS - и что почти никто не использует уровень 3),

В целом: используйте TAs для обеспечения целостности.

2
ответ дан 4 December 2019 в 06:49
поделиться

Это зависит от того, что Вы называете огромными, но это поможет (это действительно зависит от общего количества вставок, которые Вы делаете). Это вынудит SQL Server не сделать фиксацию после каждой вставки, которая вовремя складывает. С 100 вставляет, Вы, вероятно, не заметите слишком много увеличение в зависимости от того, как часто и что еще продолжает базу данных.

2
ответ дан 4 December 2019 в 06:49
поделиться
Другие вопросы по тегам:

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