Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
03.10.2001, 14:26
|
|||
|---|---|---|---|
|
|||
Помогите правильно настроить ADOQuery |
|||
|
#18+
Приветствую! У меня выполняется запрос к MS SQL Server'у , в теле которого заключен некий алгоритм, смысл которого в следующем: отсортировать последовательность ID-ров, предложенную клиентским приложением, по соответствующему этим ID-рам текстовому полю таблицы в БД и выдать результат сортировки. Получается один очень большой запрос. Когда настройки компонента ADOQuery используют клиентский тип курсора : \n AutoCalcFields = False CursorLocation = clUseСlient CursorType = ctStatic MarshalOptions = moMarshalAll ParamCheck = False то все нормально и выполняется этот запрос за 13 секунд , но у меня есть подозрение, что его можно выполнить за меньшее время, если использовать серверный курсор : \n AutoCalcFields = False CursorLocation = clUseServer CursorType = ctDynamic MarshalOptions = moMarshalModifiedOnly ParamCheck = False Я использую MDAC2.6, DELPHI 6.0, MS SQL Server 2K. Вопросы 1. Почему после открытия запроса при подобных настройках, ADOQuery.RecordCount = -1 ? 2. Будет ли быстрее производится обработка запроса, если изменить тип курсора на clUseServer ? С уважением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.10.2001, 15:52
|
|||
|---|---|---|---|
Помогите правильно настроить ADOQuery |
|||
|
#18+
1. Именно потому, что стали использовать серверный курсор. В этом случае после выполнения запроса только сервер знает, сколько записей попало в recordset. Получить это значение можно, например, через дополнительный recordset SELECT @@ROWCOUNT AS RecordCount 2. Однозначного ответа нет - все зависит от того, какими ресурсами(память,процессоры, диски) обладает ваш сервер, какими ресурсами обладает клиентская машина, сколько пользователей одновременно будут выполнять данный запрос, сколько записей(в среднем) содержит запрос, сколько пользователей вообще одновременно будут обращаться к серверу. Определенно можно сказать лишь то, что серверный курсор использует ресурсы сервера, а вот справиться ли ваш сервер с таким количеством курсоров - это другой вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.10.2001, 05:24
|
|||
|---|---|---|---|
|
|||
Помогите правильно настроить ADOQuery |
|||
|
#18+
Клиентский курсор имеет отличия от серверного только после исполнения самого запроса, формирующего набор данных для курсора. Т.е. выполняется запрос, формируется набор данных, а уже потом открывается курсор (клиентский или серверный) по этому набору данных. Это в свою очередь значит, что указание типа курсора практически никак не может повлиять на скорость выполнения запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=46&mobile=1&tid=1825383]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
30ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
20ms |
get tp. blocked users: |
1ms |
| others: | 266ms |
| total: | 345ms |

| 0 / 0 |
