Сайт большого объема с помощью ADO.NET TransactionScope по сравнению с ExecuteCommand на NOLOCK, ЧИТАЙ НЕЗАФИКСИРОВАННЫЙ непосредственно?

Вы должны реализовать встроенный модуль csv, который входит в стандартную комплектацию Python. Он может легко разбирать каждую строку в списке. Попробуйте что-то вроде этого:

import csv

with open('text.txt', 'r') as file:
    my_reader = csv.reader(file, delimiter='|')
    for row in my_reader:
        if row[0] == 'C00501197':
            print(row)

Это должно вывести строки, которые вы хотите. Затем вы можете делать все, что хотите, чтобы обработать их и сохранить их снова.

5
задан Dan Atkinson 5 March 2011 в 20:39
поделиться

2 ответа

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

Jeff в основном сказал: "bla bla bla, быть реальными, bla bla bla, теоретики базы данных, bla bla bla, ЧИТАЮТ НЕЗАФИКСИРОВАННЫЙ, может быть полезно для РЕАЛЬНЫХ производственных приложений, для которых не нужна непротиворечивость данных". Jeff не является DBA, к счастью, существует много DBAs здесь на ТАК.

Проблема с подходом Omar состоит в том, что он может протечь, соединения с "чтением отменили фиксацию" уровня изоляции в к Вашему объединению соединений, которое могло нанести ущерб в Вашем веб-сайте. Значение случайного оператора может быть выполнено в незафиксированном чтении.

Подход Javed был бы намного лучше, потому что на располагают MS, имеют шанс очистить материал на соединении.

ОТРЕДАКТИРУЙТЕ, Если у Вас есть проблемы производительности с подходом Javed, Вы могли бы посмотреть на прокрутку Вашего собственного менеджера транзакций.

Некоторые вещи Вы, вероятно, хотите сделать:

  • Держите стопку текущих транзакций
  • Подтвердите, что Вы находитесь на потоке создателя, когда транзакция фиксируется
  • Сбросьте изоляцию транзакции к ее предыдущему состоянию на, располагают
  • Откат на располагает, если транзакция не фиксировалась.
  • Поддерживайте вложенные откаты.
9
ответ дан 18 December 2019 в 12:02
поделиться

{Моя (плохая) репутация не позволяет мне публиковать комментарии, поэтому я поставил это как ответ}

Если вы используете IsolationLevel через System.Transactions и создаете новый контекст Linq в блоке транзакции , SQL Server пытается вызвать DTC для координации транзакции. Это только что случилось со мной и было довольно неожиданно.

1
ответ дан 18 December 2019 в 12:02
поделиться
Другие вопросы по тегам:

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