JDBC-соединение с очень загруженным SQL 2000: selectMethod = cursor vs selectMethod = direct?

В процессе попытки помочь группе разработчиков приложений решить проблемы с производительностью на сервере SQL 2000 (из множество приложений Java на отдельных серверах приложений), я запустил трассировку SQL и обнаружил, что все вызовы базы данных заполнены операторами курсора сервера API (sp_cursorprepexec, sp_cursorfetch, sp_cursorclose).

Похоже, они определяют некоторые свойства строки подключения, которые заставляют использовать курсоры на стороне сервера, извлекая только 128 строк данных за раз: свойства установлены на любое другое чем по умолчанию, OLE DB поставщик для SQL Server и SQL Серверный драйвер ODBC использует сервер API курсоры вместо результата по умолчанию наборы. Каждый вызов функции API который выбирает строки, генерирует туда и обратно на сервер, чтобы получить строк из курсора сервера API.

UPDATE : рассматриваемая строка подключения - это параметр строки подключения JDBC, selectMethod = cursor (который включает курсоры на стороне сервера, которые мы обсуждали выше), а не альтернатива selectMethod = direct . Они использовали selectMethod = cursor в качестве стандартной строки подключения для всех приложений.

С моей точки зрения администратора баз данных это просто раздражает (это загромождает трассировку бесполезным мусором) и (я бы предположил) приводит к множеству дополнительных циклов обмена между приложением и SQL-сервером, что снижает общую производительность.

Они, по-видимому, провели тестовое изменение (только одно из примерно 60 различных подключений приложений) на selectMethod = direct , но возникли некоторые проблемы (подробностей у меня нет) и обеспокоены нарушением работы приложения.

Итак, мои вопросы:

  • Может ли использование selectMethod = cursor снизить производительность приложения, как я пытался спорить? (за счет увеличения количества циклов приема-передачи, необходимого на сервере SQL, который уже имеет очень большое количество запросов в секунду)
  • Является ли selectMethod = прозрачным для приложения параметром соединения JDBC? Может ли это сломать их приложение, если мы его изменим?
  • В общем, когда следует использовать курсор или прямой ?

Также перекрестно размещен в SF .

EDIT : Получены актуальные технические подробности, которые требуют значительного редактирования заголовка, вопроса и тегов.

РЕДАКТИРОВАТЬ : добавлено вознаграждение. Также добавлено вознаграждение за вопрос SF (этот вопрос сосредоточен на поведении приложения, вопрос SF сосредоточен на производительности SQL). Спасибо !! У меня небольшой вопрос. Допустим, у меня есть таблица HTML, подобная следующей:

& ...

Я новичок в jQuery и JavaScript. У меня небольшой вопрос. Скажем, у меня есть таблица HTML, подобная следующей

value
value text

В приведенном выше примере я знаю идентификатор строки и хочу изменить значение второго столбца строки с этим конкретным идентификатором.

Мне нужен результат вроде следующее:

 
value ChangedText

Итак, мой вопрос: как я могу выбрать 2 nd столбец первой строки с заданным идентификатором, чтобы изменить значение?

12
задан Shog9 1 September 2010 в 22:29
поделиться