Важность положения курсора
Область применения: Access 2013, Office 2013
Каждый курсор использует временные ресурсы для хранения данных. Эти ресурсы могут быть памятью, файлом подкачки диска, временными файлами диска или даже временным хранилищем в базе данных. Курсор называется курсором на стороне клиента , если эти ресурсы находятся на клиентском компьютере. Курсор называется курсором на стороне сервера , если эти ресурсы находятся на сервере.
Курсоры Client-Side
В ADO вызовите клиентский курсор с помощью adUseClientCursorLocationEnum. При использовании курсора на стороне клиента, отличного от набора ключей, сервер отправляет весь результирующий набор по сети на клиентский компьютер. Клиентский компьютер предоставляет временные ресурсы, необходимые для курсора и результирующих наборов, и управляет ими. Клиентское приложение может просматривать весь результирующий набор, чтобы определить, какие строки ему нужны.
Статические курсоры и курсоры на стороне клиента, управляемые набором ключей, могут значительно нагрузить рабочую станцию, если они содержат слишком много строк. Хотя все библиотеки курсоров могут создавать курсоры с тысячами строк, приложения, предназначенные для получения таких больших наборов строк, могут работать плохо. Конечно, есть исключения. Для некоторых приложений большой клиентский курсор может быть вполне подходящим, а производительность может не быть проблемой.
Одно из очевидных преимуществ клиентского курсора — быстрый ответ. После загрузки результирующий набор на клиентский компьютер просмотр строк выполняется очень быстро. Как правило, приложение более масштабируемо с помощью курсоров на стороне клиента, так как требования к ресурсам курсора размещаются на каждом отдельном клиенте, а не на сервере.
Курсоры Server-Side
В ADO вызовите серверный курсор с помощью adUseServerCursorLocationEnum. С помощью курсора на стороне сервера сервер управляет результирующий набор, используя ресурсы, предоставляемые серверным компьютером. Серверный курсор возвращает только запрошенные данные по сети. Этот тип курсора иногда может обеспечить более высокую производительность, чем клиентский курсор, особенно в ситуациях, когда возникает проблема с чрезмерным сетевым трафиком.
Однако важно отметить, что курсор на стороне сервера — по крайней мере временно — потребляет ценные серверные ресурсы для каждого активного клиента. Необходимо спланировать соответствующим образом, чтобы убедиться, что серверное оборудование может управлять всеми серверными курсорами, запрошенными активными клиентами. Кроме того, курсор на стороне сервера может работать медленно, так как он предоставляет доступ только к одной строке— пакетный курсор недоступен.
Серверные курсоры полезны при вставке, обновлении или удалении записей. С помощью курсоров на стороне сервера можно использовать несколько активных операторов в одном соединении.