Если вы уверены, что в вашей программе нет утечек памяти , попробуйте:
-Xmx1g
. -XX:+UseConcMarkSweepGC
. Если необходимо, ограничение limit можно отключить, добавив опцию -XX:-UseGCOverheadLimit
в командной строке.
Это - болезненный и hacky способ сделать это, но это - то, что мы делаем, где я работаю. Мы также используем классический asp, таким образом, мы используем встроенные вызовы sql. мы на самом деле переносим вызов sql в функцию (здесь, можно проверить на определенного пользователя), и добавьте "ЧТЕНИЕ УРОВНЯ ИЗОЛЯЦИИ ТРАНЗАКЦИИ НАБОРА, НЕЗАФИКСИРОВАННОЕ" к началу вызова.
Я верю функционально, что это не совпадает ни с какой подсказкой блокировки. Извините у меня нет чистого ответа SQL, мне было бы интересно слышать, находите ли Вы хороший способ сделать это.
Вы могли настроить Studio управления SQL своего персонала поддержки для установки уровня изоляции транзакции по умолчанию для ЧТЕНИЯ НЕЗАФИКСИРОВАННЫЙ (Инструменты-> Опции-> Выполнение запросов-> SQL Server-> Усовершенствованный). Это - функционально то же как имеющий подсказки NOLOCK на всем.
Оборотные стороны - то, что необходимо было бы сделать это для каждого члена службы поддержки, и у них будет способность изменить конфигурацию на их Studio управления SQL.
Вы могли создать ограниченного пользователя для службы поддержки, и затем или записать хранимые процедуры или представления с nolock-подсказкой. Затем только предоставьте доступ к тем и не прямой доступ выбора таблицы.
Хорошо, необходимо разъяснить то, что Вы пытаетесь сделать здесь.
При попытке уменьшить соединение базы данных и возможно предоставить Вашим пользователям поддержки данные, которые никогда не могут действительно фиксироваться в базе данных. Позволяя им записать что-либо, что они хотят к базе данных, затем nolock, является способом пойти. Вы получите добавленную премию, что Ваш пользователь все еще сможет увеличить их уровень изоляции с помощью команды SET TRANSACTION ISOLATION LEVEL.
При попытке ограничить повреждение, они могут вызвать, когда выполнение материала против DB, взгляд на реализацию безопасности, удостоверяется, что им только позволяют доступ для чтения к Вашим таблицам и взгляду на разделение всего доступа к сохраненному procs и функциям.
Я Нахожу, что NOLOCK в большой степени неправильно понят на переполнении стека.
К сожалению, ограничение пользователей к SPS побеждает цель этого. Я надеялся, что был некоторый способ, которым я мог позволить им запрашивать все и таким образом улучшать их навыки поиска и устранения неисправностей. Спасибо за Ваших парней справки.
Как Espo, на который намекают, я вполне уверен, нет никакого прямого способа сделать то, что Вы спрашиваете. Как он сказал, можно отсортировать - выполняют его путем ограничения доступа пользователя к только procs, которым кодировали встроенный NOLOCK в них.