Блокируется таблица в MS SQL ServerDelphi , Базы данных , SQLБлокируется таблица в MS SQL ServerАвтор: Nomadic По умолчанию, оператор UPDATE в MS SQL Server пытается поставить эксклюзивную табличную блокировку. Вы можете обойти это, используя ключевое слово FROM в сочетании с опцией PAGLOCK для использования MS SQL Server страничных блокировок вместо эксклюзивной табличной блокировки: UPDATE orders SET customer_id=NULL FROM orders(PAGLOCK) WHERE customer_id=32; Блокиpовка на всю таблицу пpи UPDATE ставится только в том случае, если по пpедикату нет индекса. Так, можно пpосто пpоиндексиpовать таблицу orders по полю customer_id, и не забывать делать UPDATE STATISTIC, хотя будет работать и с PAGLOCK. Просто не факт, что UPDATE всегда делает табличную блокировку. Статья обсуждает распространенный вопрос в MS SQL Server, где заявка на обновление таблицы пытается занять исключительный блокировку таблицы, что может привести к проблемам с производительностью и блокировке других запросов. Автор предлагает использовать клаузу Основной пункт статьи заключается в том, что при обновлении таблицы без указания конкретного индекса или хинтов блокировки SQL Server по умолчанию будет принимать исключительную блокировку таблицы. Это может привести к проблемам с производительностью и блокировке других запросов, которые требуют доступа к той же таблице. Автор предлагает две решения:
Статья также отмечает, что даже если вы создадите индекс и используете опцию В целом, статья предоставляет ценные сведения о механизмах блокировки в MS SQL Server и предлагает практические решения для улучшения производительности и уменьшения проблем с блокировкой. Оператор UPDATE в MS SQL Server может быть обойдан использованием страничных блокировок вместо эксклюзивной табличной блокировки с помощью ключевого слова FROM и опции PAGLOCK. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |