Как вызвать подсказку nolock для логинов SQL-сервера

Если вы уверены, что в вашей программе нет утечек памяти , попробуйте:

  1. Увеличьте размер кучи, например -Xmx1g.
  2. Включить параллельный сборщик низких пауз -XX:+UseConcMarkSweepGC.
  3. Повторно использовать существующие объекты, когда это возможно, чтобы сохранить некоторую память.

Если необходимо, ограничение limit можно отключить, добавив опцию -XX:-UseGCOverheadLimit в командной строке.

7
задан Taryn 27 June 2013 в 13:51
поделиться

6 ответов

Это - болезненный и hacky способ сделать это, но это - то, что мы делаем, где я работаю. Мы также используем классический asp, таким образом, мы используем встроенные вызовы sql. мы на самом деле переносим вызов sql в функцию (здесь, можно проверить на определенного пользователя), и добавьте "ЧТЕНИЕ УРОВНЯ ИЗОЛЯЦИИ ТРАНЗАКЦИИ НАБОРА, НЕЗАФИКСИРОВАННОЕ" к началу вызова.

Я верю функционально, что это не совпадает ни с какой подсказкой блокировки. Извините у меня нет чистого ответа SQL, мне было бы интересно слышать, находите ли Вы хороший способ сделать это.

8
ответ дан 6 December 2019 в 08:46
поделиться

Вы могли настроить Studio управления SQL своего персонала поддержки для установки уровня изоляции транзакции по умолчанию для ЧТЕНИЯ НЕЗАФИКСИРОВАННЫЙ (Инструменты-> Опции-> Выполнение запросов-> SQL Server-> Усовершенствованный). Это - функционально то же как имеющий подсказки NOLOCK на всем.

Оборотные стороны - то, что необходимо было бы сделать это для каждого члена службы поддержки, и у них будет способность изменить конфигурацию на их Studio управления SQL.

12
ответ дан 6 December 2019 в 08:46
поделиться

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

0
ответ дан 6 December 2019 в 08:46
поделиться

Хорошо, необходимо разъяснить то, что Вы пытаетесь сделать здесь.

При попытке уменьшить соединение базы данных и возможно предоставить Вашим пользователям поддержки данные, которые никогда не могут действительно фиксироваться в базе данных. Позволяя им записать что-либо, что они хотят к базе данных, затем nolock, является способом пойти. Вы получите добавленную премию, что Ваш пользователь все еще сможет увеличить их уровень изоляции с помощью команды SET TRANSACTION ISOLATION LEVEL.

При попытке ограничить повреждение, они могут вызвать, когда выполнение материала против DB, взгляд на реализацию безопасности, удостоверяется, что им только позволяют доступ для чтения к Вашим таблицам и взгляду на разделение всего доступа к сохраненному procs и функциям.

Я Нахожу, что NOLOCK в большой степени неправильно понят на переполнении стека.

1
ответ дан 6 December 2019 в 08:46
поделиться

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

0
ответ дан 6 December 2019 в 08:46
поделиться

Как Espo, на который намекают, я вполне уверен, нет никакого прямого способа сделать то, что Вы спрашиваете. Как он сказал, можно отсортировать - выполняют его путем ограничения доступа пользователя к только procs, которым кодировали встроенный NOLOCK в них.

0
ответ дан 6 December 2019 в 08:46
поделиться
Другие вопросы по тегам:

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