Я хотел бы задать пару вопросов о механизме блокировки SQL Server.
Если я не использую подсказку блокировки с оператором SQL, SQL Server по умолчанию использует подсказку PAGELOCK. я прав??? Если да, то почему? может быть это связано с управлением слишком большим количеством замков, это единственное, что я считаю недостатком, но, пожалуйста, дайте мне знать, если есть другие. а также скажите мне, можем ли мы изменить это поведение по умолчанию, если это разумно.
Я пишу приложение на стороне сервера, сервер синхронизации (не используя структуру синхронизации), и я написал запросы к базе данных в файле кода C # и использую соединение ODBC для их выполнения. Теперь вопрос заключается в том, как лучше всего изменить блокировку по умолчанию со страницы на строку с учетом недостатков (например, добавление подсказки блокировки в запросы, это то, что я планирую).
Что делать, если SQL-запрос (SELECT/DML) выполняется без области транзакции, а оператор содержит подсказку блокировки, то какой тип блокировки будет получен (например, общая, обновление, эксклюзивная)? И, хотя в области транзакции уровень изоляции транзакции влияет на тип блокировки, если используется подсказка ROWLOCK.
Наконец, если бы кто-нибудь мог дать мне образец, чтобы я мог протестировать и испытать все вышеперечисленные сценарии самостоятельно (например, точечный сетевой код или сценарий sql)
Спасибо, Мубашар.