Может кто-нибудь объяснить, что означает MARS для логического соединения или как это работает? Кроме того, что такое время ожидания блокировки / сек? Я новичок в этом. - PullRequest
0 голосов
/ 02 ноября 2018

Может кто-нибудь объяснить, что означает MARS для логического соединения или как он работает? Кроме того, что такое время ожидания блокировки / сек? Я новичок в этом.

1 Ответ

0 голосов
/ 02 ноября 2018

Протокол потока табличных данных (TDS), изобретенный Sybase и расширенный Microsoft , требует , чтобы клиент прочитал полные результаты каждой операции, прежде чем продолжить к следующей операции. Невыполнение этого вызывает ошибку «ожидающие результаты». До MARS единственным способом чередования двух одновременных операций было два независимых подключения к базе данных. Сервер даже предлагает способы связать два соединения, чтобы позволить им совместно использовать определенные ресурсы.

Sybase настаивала на том, что разработала свою СУБД для удешевления соединений, и поощряла разработчиков приложений использовать столько, сколько было удобно. Другие СУБД не следовали этому примеру: они используют мультиплексные соединения (предположительно, с большим весом) и рекомендовали одно соединение на приложение.

Это требование "сделать все" уникально для TDS среди протоколов клиент-сервер СУБД. Код, написанный, например, для Oracle, который предполагает, что новая операция может быть начата, пока результаты остаются на сервере, ожидает сбой при переносе на SQL Server. Поскольку этот аспект TDS несколько загадочен, он склонен удивлять программистов, когда они впервые сталкиваются с ним.

Существует тенденция рассматривать ошибки, возникающие в одной системе, а не в другой, как недостаток, а не просто выбор проекта. Microsoft представила MARS для преодоления этого предполагаемого недостатка. IIRC, он не изменил базовый протокол TDS, а ввел отображение 1: N дескрипторов базы данных в соединения с базой данных.

Нет никакого преимущества - нет - в использовании MARS, если только вы не хотите совместимости с мультиплексным соединением, потому что вы знаете, , что ваш SQL будет использоваться в других СУБД. В противном случае вам лучше сделать вид, что его не существует, как это было успешно, в течение двух десятилетий.

Более подробную информацию вы найдете на веб-сайте FreeTDS .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...