Nano Hash - криптовалюты, майнинг, программирование

ColdFusion 8 выполняет cfquery, транзакции и грязное чтение

При использовании ColdFusion 8 с MSSQL при трассировке мой администратор баз данных заметил, что к вызовам cfquery добавляется SET TRANSACTION ISOLATION LEVEL READ COMMITTED, которого нет в самом запросе. Он рекомендовал удалить его или изменить на незафиксированный по соображениям производительности.

Это что-то, что добавляет ColdFusion, и это по умолчанию в ColdFusion и/или MSSQL?

Я использую драйверы MSSQL по умолчанию для ColdFusion, и я могу временно изменить их, используя тег <cftransaction isolation="read_uncommitted"> вокруг каждого из cfquerys.

Есть ли другие способы предотвратить добавление этого в ColdFusion или cftransaction лучший метод?

Последний вопрос: при использовании isolation="read_uncommitted" почему он добавляет SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED до, но сразу после запроса, добавляющего SET TRANSACTION ISOLATION LEVEL READ COMMITTED?

Заранее спасибо.


  • Брэндон - Я понятия не имею, почему они проголосовали против моего ответа... хотелось бы, чтобы они добавили комментарий, чтобы я узнал, а? :) Разобрались? 05.06.2012
  • Ваш ответ подтвердил мои мысли, спасибо! Я не нашел других способов, кроме cftransaction, так что я пошел с этим. Спасибо за помощь. 05.06.2012
  • ха - спасибо Брэндон... теперь, если бы я мог просто найти подлого dba, который проголосовал за меня, я бы послал ему суровый взгляд :) 05.06.2012

Ответы:


1

Committed — это уровень изоляции по умолчанию для любого запроса к базе данных, для которого не указан другой уровень изоляции. Вы меняете его на время выполнения, а затем он возвращается к «совершенному». Создание оператора является частью того, что происходит «под капотом», поскольку CF и драйвер JDBC работают вместе. Использование «read_uncommitted» выполняется быстрее, поскольку оно считывается, не препятствуя изменению или чтению данных каким-либо другим соединением или запросом. Таким образом, это открывает возможность «грязного чтения» (когда вы читаете незафиксированные и, следовательно, возможно, неверные данные), но во многих случаях это не является большой проблемой, поэтому ваш администратор базы данных может быть прав.

01.06.2012

2

Это неправильно интерпретируется, read_committed является проблемой «изоляции», если в какой-то другой задаче таблица открыта для обновления/вставки/удаления транзакции, которая находится в «read_committed». ' будет ожидать снятия блокировок с таблицы до тех пор, пока транзакции НЕ будут зафиксированы. Если транзакция настроена на 'read_uncommitted', она будет считывать непосредственно из существующих данных и НЕ будет ждать отложенного обновления/вставки/удаления. Следовательно, термин «Грязный» означает, что что-либо ожидающее, не зафиксированное не будет возвращено, но и не будет заблокировано или задержано.

18.03.2014
  • Брэдли, спасибо за дополнительный комментарий. Никогда раньше не понимал этого нюанса. Отличная информация! 30.03.2014
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..