Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
Интересует такой вопрос. До того как не начал работать с MS SQL 2000 (до этого были ASE 11.9.2, Interbase 6 (Firebird) и Oracle 8 и 9), вопроса даже не возникало. Есть приложение, подключенное в БД. И нужно в этом приложении открыть два (или более) запросов, например по 100-1000 записей, но на клиенте нужно записей по 10 из каждого. В MS SQL (не используя серверные курсоры) на каждый запрос дублируется подключение, что не есть хорошо. Соответственно попытка начать транзакцию вызавает ошибку что-то про Capacity.В MS SQL 2005 вроде есть MARS, но по умолчанию не включен, да и от самого 2005 впечатление просто от установки и запуска ужасное. Собственно вопрос - прав ли я, утверждая, что ни в одном из других серверов (Sybase, Oracle) такой проблемы нет даже теоретически ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 17:21 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
КВ MS SQL (не используя серверные курсоры) на каждый запрос дублируется подключение, что не есть хорошо. Возможность иметь пул сединений - заслуга MS, а то, что "на каждый запрос" действительно "дублируется подключение" - ваша. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2006, 01:53 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
А я чё-то обоих не могу понять...Зачем дублировать? В чем заслуга? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2006, 11:33 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
SergSuperА я чё-то обоих не могу понять...Зачем дублировать? В чем заслуга?Многие афтары ухитряются написать вопрос таким образом, что каждый понимает (или не понимает) их по-своему. Нечему удивляться 8) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2006, 16:13 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
Попробую сформулировать вопрос немного по-другому. Мне в пргограмма нужно открывать множество клиентских курсоров и не делать Fetch All (просто открыто много окон, в них DBGrid'ы). MS SQL в таком режиме не тянет. Вопрос - спасет ли меня, например, ASA или какой другой сервер ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 10:23 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
Признаться, я не уверен в своем понимании термина "клиентский курсор". Могу сказать так: я делал приложение, в котором в одной сессии работали несколько десятков DBGrid-ов с соответствующими им источниками данных, никаких проблем не было. Oracle+BDE (да, да, я все знаю, но в 99-м году вариантов выбора особо не было). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 10:33 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
Именно это и есть клиентский курсор - открытый TDataSet. В Oracle этой проблемы нет, ни через BDE, ни через ODAC. С ODAC правда были какие-то другие проблемы, но я их решил и уже забыл. А сейчас на работе у нас приложение BDE+MSSQL 2000, так вот там ужас - если открыт DBGrid и приложение открывает еще один - первый Fetch'ит все записи. Но у Oracle и Sybase ASE (там вроде тоже все работает) есть недостаток - они громоздки, для крупных проектов это неважно, но вот для мелких критично. А Firebird - вообще не сервер (убедительная просьба на эту фразу не реагировать и флейм не начинать). Пытаюсь смотреть в сторону Sybase ASA, но скачать 190 мегабайт не могу, поэтому хочу услышать мнение, а потом уже озабочусь доставанием дистрибутива... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 10:56 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
softwarerOracle+BDE (да, да, я все знаю, но в 99-м году вариантов выбора особо не было). Кстати, если сравнивать BDE и ADO, то BDE мне нравится больше. В AnyDAC был тест на скорость разных средств доступа - BDE в некоторых тестах быстрее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 10:58 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
КНо у Oracle и Sybase ASE (там вроде тоже все работает) есть недостаток - они громоздки, для крупных проектов это неважно, но вот для мелких критично. Немного не понял, в чем конкретно заключается громоздкость Oracle? Не могли бы здесь поподробней объяснить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 10:59 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
В размере проинсталлированного продукта. Просто клиент Oracle 9i если не ошибаюсь, занимает 350 мегабайт. Сервер почти 2 гигабайта. Если программа работает на 2-3 рабочих местах и нет выделенного сервера, то многие пользователи просто не поймут зачем 2 GB. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 11:21 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
Если для доступа к MSSQL-серверу используется ADO, то пулинг можно отключить. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 11:22 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
RENaissance Если для доступа к MSSQL-серверу используется ADO, то пулинг можно отключить. А что он будет в этом случае делать при открытии второго запроса ? Дофетчивать первый ? У меня используется старый SDAC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 11:30 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
K А что он будет в этом случае делать при открытии второго запроса ? Дофетчивать первый ? Думаю, что в случае использования клиентского курсора так и будет. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 11:33 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
КВ размере проинсталлированного продукта. Просто клиент Oracle 9i если не ошибаюсь, занимает 350 мегабайт. Сервер почти 2 гигабайта. Если программа работает на 2-3 рабочих местах и нет выделенного сервера, то многие пользователи просто не поймут зачем 2 GB. а чем не устраивает oracle xe - весь сервер 280mb (260 инсталяция) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 11:35 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
Какой-то у Вас (или у меня) неправильный XE. Мой был дистрибутив - 100 с чем-то, а поставился на 1.5 гига. Еще вопрос по теме - где достать Java-машину чтобы утилиты от XE работали под IE 6.0 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 11:41 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
ККакой-то у Вас (или у меня) неправильный XE. Мой был дистрибутив - 100 с чем-то, а поставился на 1.5 гига. Еще вопрос по теме - где достать Java-машину чтобы утилиты от XE работали под IE 6.0 ? незнаю у кого, но точно не у меня :) # du -h --max-depth=1 /usr/lib/oracle/xe/app/oracle/ 279M /usr/lib/oracle/xe/app/oracle/product 101M /usr/lib/oracle/xe/app/oracle/flash_recovery_area 252K /usr/lib/oracle/xe/app/oracle/doc 248K /usr/lib/oracle/xe/app/oracle/admin 380M /usr/lib/oracle/xe/app/oracle/ java для админ части не нужна в принципе, там чистый html и javascript, как и во взрослых версиях оракла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 11:49 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
Ой, у меня же Windows ! так вот там из утилит есть только Go to server home page, который открывает IE на Localhost, а там везде апплеты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 11:51 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
ASA и BDE - будут небольшие проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 11:55 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
КОй, у меня же Windows ! так вот там из утилит есть только Go to server home page, который открывает IE на Localhost, а там везде апплеты да нету там аплетов, это же apex, бывший htmldb хоть под нетваре аплетов там нет. я из под firefox работаю, там что-то помнится не работало из-за javascript но не критичное. попробуй firefox или мазилу, она вообще помоему супортится официально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 11:56 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
Yo.!!да нету там аплетов может я не тот Oracle пользовал ? Сколько себя помню (еще с 8-го), все утилиты администрирования (Configuration manager, enterprise manager) там всегда были на java... Попробую сегодня дома еще раз поставить, может мне Firewall лишнее отфильтровал... casmithASA и BDE - будут небольшие проблемы. А в чем именно проблемы ? И есть ли сейчас компоненты (лучше бесплатные) для доступа без BDE ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 12:01 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
К может я не тот Oracle пользовал ? Сколько себя помню (еще с 8-го), все утилиты администрирования (Configuration manager, enterprise manager) там всегда были на java... Попробую сегодня дома еще раз поставить, может мне Firewall лишнее отфильтровал... не знаю тебе видней :) "Go to server home page, который открывает IE на Localhost" похоже на XE, тока порт 8080, java там и не пахнет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 12:12 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
К casmithASA и BDE - будут небольшие проблемы. А в чем именно проблемы ? И есть ли сейчас компоненты (лучше бесплатные) для доступа без BDE ?Обязательный Fetch после открытия запроса, если мне память не изменяет. Sybase и MS SQL - они родственники... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 12:42 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
Родственники, да не совсем. Насколько я знаю, когда MS клонировали Sybase (ASE а не ASA, а ASA был вроде Watcom SQL), был DB-library. В 11 ASE был уже CT-library, который как раз был сделан чтобы держать открытые курсоры, потом если не ошибаюсь его назвали Open Client и ввели его поддержку в ASA. А мелкомягкие только в 2005 сделали MARS - что-то подобное ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 12:51 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
Во всяком случае в Sybase Adaptive Server Enterprise 11.9.2 (NT, Linux) у нас (Аккорд 5 если кто слышал) могло быть открыто сколько угодно недофетченных запросов через BDE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 12:52 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
А как насчет VistaDB? Там есть специальные объекты для DDA-доступа, которые открывают scrollable cursor. Данные в гриде отображаются почти мгновенно после запроса. Есть там и простенький серверок для мультипользовательского доступа ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 17:40 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
Хотелось бы чтобы были триггеры, процедуры и разрабатывать модель в Power Designer'е... В общем, придется доставать ASA и смотреть, или вообще заброшу проект ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 17:46 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
в VistaDB есть и триггера и процедуры (начиная с 3-й версии - на .NET) и представления и встроенная поддержка шифрования (на уровне базы, таблицы, столбца) Да че я рассказываю - почитать можно здесь: http://www.vistadb.com/vistadb3.asp ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 19:33 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
Кили вообще заброшу проект ИМХО самое верное решение в данном случае :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 19:46 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
pavelvp Кили вообще заброшу проект ИМХО самое верное решение в данном случае :-) Верное, потому что это не коммерческий проект и не для работы - а так, для души. Очередной клон UDE/ПИРС или Тектон Matrix (какая по счету попытка - уже и не вспомню) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 22:13 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
Интересно, а зачем вообще открывать курсоры на все данные, но тянуть их только часть ? Что мешает просто через запросы порциями подгружать нужное кол-во данных, как это к примеру делается в интернет приложениях, разбивающих данные на страницы ? -- www.rusug.ru - портал русскоязычной группы пользователей Sybase ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 02:47 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
Пример - необходимо открыть большой справочник (классификатор например). Никакого фильтрующего признака нет - только код и наименование. Используется стандартный компонент Delphi - DBGrid (ну или DXDBGrid, DBGridEh). И что делать ? В обычном, не интернет, приложении, показывать в гриде 20 записей и делать кнопочку "след. страница" - юзер не поймет... В конце-то концов, для чего придумывать все новые и новые интерфейсы к СУБД (я про Microsoft), если они все равно работают по тупому принципу "отправил запрос - получил все данные - работай дальше" ? Посмотрел вчера еще раз ASE 11.9 - там все прекрасно. Теперь хочу ASA. Регистрационный код получил, а вот скачать не могу - трафик. У пиратов почему-то только MS SQL, а СВОБОДНО СКАЧИВАЕМЫХ ASA developer edition и Oracle XE нет в принципе. (оказывается он у меня был неправильный, без поддержки русского) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 10:27 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
Как-то я видел в BOL утверждение что в пределах коннекта может быть только один безымянный открытый курсор. Из этого я сделал вывод что поименованных может быть много и побежал дальше. Я был неправ? Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 10:32 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
К В MS SQL (не используя серверные курсоры) на каждый запрос дублируется подключение, что не есть хорошо. попробуй заюзать связки TADOConnetion + TADOCommand,TADOTable,TDAOQuery ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 10:46 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
Почитал документацию. Вот что там написано The client cannot send any other Transact-SQL statements on that connection until the application has either processed all the rows returned by SQL Server or sent SQL Server a request to cancel the rest of the results. No updates can be done on the connection until all the results have been processed; the result sets are read-only. Серверные курсоры - вроде как выход, но есть у них ограничения, из-за которых использовать их невозможно (Dynamic не поддерживает Bookmarks, а Keyset не видит изменений сделанных вне курсора) Так что вопрос о MS SQL снимается - он мне не подходит. Всем спасибо ! А вопрос про ASA пока остается... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 10:55 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
К... мдааа... "хорошему танцору ничего не мешает, а плохому и хирург не поможет" (С) не мое ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 11:22 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
Да нет, просто не хочется выбирать продукт с заведомо существующей проблемой и потом придумывать костыли чтобы ее обходить, если есть другие продукты где такой проблемы нет вообще Просто удивляет, как такой гигант как Microsoft все эти годы даже не задумывался над тем, что у других есть уже очень давно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 11:53 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
КДа нет, просто не хочется выбирать продукт с заведомо существующей проблемой и потом придумывать костыли чтобы ее обходить, если есть другие продукты где такой проблемы нет вообще Просто удивляет, как такой гигант как Microsoft все эти годы даже не задумывался над тем, что у других есть уже очень давно и как немерянное количество разработчиков пишут продукты на таком кривущем софте с такой грандиозной недоработкой? просто жуть берет, как же они мучаются, при вытаскивании наборов данных на клиента. тока осталось этих разработчиков оповестить о том, какая же у них жись тяжелая.... ну или все-таки рассмотреть не совсем приятный вариант, что проблема в hand.sys или brain.dll и кинуться читать доки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 12:10 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
andy stтока осталось этих разработчиков оповестить о том, какая же у них жись тяжелая.... foxpro умер, но дело его живет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 12:18 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
andy stну или все-таки рассмотреть не совсем приятный вариант, что проблема в hand.sys или brain.dll и кинуться читать доки. Вместо того чтобы наезжать, объяснил бы как с этим жить. Упрощаю задачу - есть MS SQL 2000, Delphi 7, SDAC 3.0. В базе 2 таблицы по 10000 записей с BLOB-полями. Нужно в приложении открыть два окна редактирования этих таблиц, каждое с TDBGrid и без фильтров. Чтобы работало быстро, надежно, красиво. Коненкт к базе должен быть один - по sysprocesses контролируется соблюдение ограничения на количество рабочих мест. Итак, я внимаю Вам, магистр ! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 12:22 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
Нужно открыть все 10000 записей - открывай. Сразу. Все. На клиент. И не говорите, что пользователь будет со всем этим работать. НЕ БУДЕТ. СРАЗУ СО ВСЕМИ. А если будет (интересно, каков процент таких задач, если они вообще есть), то пусть все качается. С блобами. Блин, сколько раз жевалась эта жвачная масса... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 12:34 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
Он не будет работать со всем сразу. Например это справочник банков Центробанка. Он нажмет Ctrl-F и будет искать. или просто листать - заранее сказать нельзя, юзеры - существа непредсказуемые. А найдет он свой банк, например 500-м по порядку. Зачем все на клиент ? Или более реальный пример - реестр документов. Он ему нужен за весь период, надо ему найти документик хитрый, попутно еще несколько посмотреть. А документов-то всего 100000 например, а найдет он его 1300-м. И ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 12:39 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
КВместо того чтобы наезжать, объяснил бы как с этим жить. Упрощаю задачу - есть MS SQL 2000, Delphi 7, SDAC 3.0. В базе 2 таблицы по 10000 записей с BLOB-полями. Нужно в приложении открыть два окна редактирования этих таблиц, каждое с TDBGrid и без фильтров. Чтобы работало быстро, надежно, красиво. Коненкт к базе должен быть один - по sysprocesses контролируется соблюдение ограничения на количество рабочих мест. Упростили дальше некуда. А что, это попробовали и решить задачу не получилось?: andy_stпопробуй заюзать связки TADOConnetion + TADOCommand,TADOTable,TDAOQuery Естественно через один модуль данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 12:43 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
А вообще-то изначально был вопрос "могут ли так другие сервера". Вместо этого мне пытаются доказать что мне это не надо... это все равно что я спрошу "как в плеере включить радио" а мне скажут "запиши весь эфир на кассету и слушай" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 12:44 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
Да просто задача никакого отношения к серверу БД не имеет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 12:45 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
Еще как имеет. От сервера зависит, как он умеет отдавать результаты запросов. Oracle - умеет отдавать от того запроса который скажу. MS - от текущего и новый открыть не даст ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 12:47 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
Чувствую, пора тему закрывать. Еще раз всем спасибо ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 12:48 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
Поднять на клиента даже 10000 записей с полями, интересными в плане "визуального" поиска конкретной записи, отсортированного в нужной последовательности для любого сервера из указанных - это просто и быстро. Искать какой-то специализированный для такой задачи - смешно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 12:59 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
Скажу так. мне просто не нравится идея качать весь запрос на клиента. Надеюсь, больше возражений не будет ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 13:12 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
КСкажу так. мне просто не нравится идея качать весь запрос на клиента. Надеюсь, больше возражений не будет ?Хозяин - барин. Однако, это даже не вежливо со стороны клиента, спросить у сервера и даже весь ответ не выслушать! :) Как-то не вяжется с идеологией таких систем. :) Пошел флейм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 13:14 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
КСкажу так. мне просто не нравится идея качать весь запрос на клиента. Надеюсь, больше возражений не будет ? что-то мешает сделать запрос чуть посложнее, добавив условия во where по предварительным критериям, которые задал пользователь? что-то мешает сделать многоуровневую систему таблиц с раскрытием групп вниз по уровням? или представляется тока список на 100000 записей на клиента (даже с навороченной отложенной выборкой данных с сервера) и тупой поиск по ctrl+F как единственный способ поиска нужных записей ??? join-ишь таблицы поди тоже на клиенте? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 13:38 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
КСкажу так. мне просто не нравится идея качать весь запрос на клиента. Надеюсь, больше возражений не будет ?Заведомо неверно. Запрос должен ограничить набор данных по критериям, для этого и существует язык запросов. Другое дело как результат фетчить, сразу или порциями. Вообще вопрос для ветки Delphi. Там вам объяснят, если надо про асинхронные запросы и про нормальный фетчинг. Кстати нормально работают связки по ADO, а уж по SDAC тем более. СУБД тут не при чем, как уже говорилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 14:16 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
Hello К, "К" <nospam@sql.ru> wrote: К> А вообще-то изначально был вопрос "могут ли так другие сервера". К> Вместо этого мне пытаются доказать что мне это не надо... это все К> равно что я спрошу "как в плеере включить радио" а мне скажут К> "запиши весь эфир на кассету и слушай" Правильная терминология определена еще в ODBC. Сначала открываются connection, затем на него вешаются statements. MSSQL - только один statement per connection, MS Access (если, конечно, ее можно считать сервером) - 256, Oracle - несколько, точно не знаю. Мысль о том, что дело не в сервере, а в интерфейсе доступа (ODBC, OCI и т.п.), не лишена основания. Хотя возможности интерфейса завязаны на сервер. Как MS не пыжится, выдумавая новые интерфейсы (OLEDB и проч.), но ограничение, имеющееся при работе с ODBC драйвером, остается и для них. Видимо, в сервере что-то жестко зашито. -- Sincerely, Dmitriy Ivanov Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2006, 04:27 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
Dmitriy IvanovMSSQL - только один statement per connection, MS Access (если, конечно, ее можно считать сервером) - 256, Oracle - несколько, точно не знаю. Не знаю, как ведет себя Oracle via ODBC, но думаю так же, как и в других случаях. Количество курсоров, которые могут быть одновременно открыты одной сессией, задается системным параметром open_cursors и относится ко всем видам курсоров (запросы с клиента, явные и неявные курсоры в выполняемых ХП и триггерах, динамическом SQL итд). Оптимальное значение open_cursors зависит от приложения. В большинстве случаев я полагаю правильным ограничить этот параметр достаточно небольшим значением (20-40); это позволяет вовремя (на этапе разработки) отловить утечки в приложении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2006, 11:08 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
Dmitriy Ivanov Правильная терминология определена еще в ODBC. Сначала открываются connection, затем на него вешаются statements. MSSQL - только один statement per connection , Для MS SQL информация не соответствует действительности. Ниже код, который явно содержит более одного statement per connection (если я конечно правильно понял, что Вы имеете ввиду под этим). Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2006, 12:32 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
iscrafm, и что это демонстрирует? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2006, 12:57 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
это демонстрирует то, что в драйверах доступа к MS SQL нет ограничения на statements, о котором сказал Dmitriy Ivanov, ничего больше. Приведенный код не исполняется как ХП на сервере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2006, 13:13 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
iscrafm Ниже код, который явно содержит более одного statement per connection (если я конечно правильно понял, что Вы имеете ввиду под этим). Судя по всему - неправильно. Имелось ввиду, конечно не SQL statement вообще, а открытый недофетченный курсор. Т.е. если бы в Вашем примере было так: Код: plaintext 1. 2. 3. 4. 5. 6. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2006, 13:15 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
Дмитрий, такое тоже вне сервера MS SQL работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2006, 13:21 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. Иногда приходится выносить такие расчеты на сервер приложений. Правда получается только в MS SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2006, 13:28 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
Hello Dimitry, "Dimitry Sibiryakov" <nospam@sql.ru> wrote: DS> Ниже код, который явно содержит более одного statement per DS> connection (если я DS> конечно правильно понял, что Вы имеете ввиду под этим). DS> DS> DS> Судя по всему - неправильно. Имелось ввиду, конечно не SQL DS> statement вообще, а открытый недофетченный курсор. Т.е. если бы в DS> Вашем примере было так: DS> DS> DECLARE CURSOR C... DS> DECLARE CURSOR D... DS> OPEN C DS> OPEN D DS> FETCH C DS> FETCH D DS> DS> было бы гораздо интереснее. Да, именно такое я имел в виду. Просто statement в терминологии ODBC - это структура для выполнения SQL-предложения, ссылка на которую осуществляется через указатель (handle). Предложение может быть не обязательно типа DQL, т.е. SELECT, как для курсора, но и DML (UPDATE, INSERT и т.п.) или DDL (CREATE ...). Выражаясь более низко, в MSSQL на один открытый хэндл коннекта может приходиться не более одного открытого хэндла предложения. -- Sincerely, Dmitriy Ivanov Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2006, 14:31 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
iscrafm-- Курсор Потребности Хм. Может быть, я ошибаюсь, но как мне представляется, тот скрипт, который Вы привели, весь целиком является единственным statement-ом. Насколько я понимаю, Дмитрий имеет в виду примерно следующее. Фрагмент кода Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. в случае MSSQL не имеет шанса на быстрое выполнение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2006, 22:15 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
softwarer iscrafm-- Курсор Потребности Хм. Может быть, я ошибаюсь, но как мне представляется, тот скрипт, который Вы привели, весь целиком является единственным statement-ом. там их несколько на самом деле, это попался первый в точности как Дмитрий описал. Причем такие фишки проходят только с MS SQL, остальные принимают только по одному. Тот примерчик что Вы привели конечно клиентский курсор не потянет. Вернее потянет но не "на_миллиард_строк". Хотя кто его знает что каждый понимает под "statement" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2006, 23:15 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
softwarer iscrafm-- Курсор Потребности Хм. Может быть, я ошибаюсь, но как мне представляется, тот скрипт, который Вы привели, весь целиком является единственным statement-ом. Насколько я понимаю, Дмитрий имеет в виду примерно следующее. Фрагмент кода Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. в случае MSSQL не имеет шанса на быстрое выполнение.Всё зависит от того, чем являются Query1 и Query2 : В случае с BDE строка Query2.Open вызовет неявно Query1.FetchAll. В случае с ADO строка Query2.Open вызовет неявно новый коннект, в котором и будут производится действия с Query2 За остальные компоненты не скажу. Как уже упоминалось выше, в MSSQL 2005 ввели Multiple Active Result Sets (MARS) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2006, 23:22 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
iscrafmПричем такие фишки проходят только с MS SQL, остальные принимают только по одномуГм. Вы уверены ? Можно огласить список остальных ? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2006, 23:25 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
hvlad, может я конечно чего-то не понимаю, но мы в этом топике обсуждаем клиентские курсоры, а MARS расширяет возможности серверных. Или мы о разных курсорах общаемся? Клиентский курсор никаких неявных коннектов не создает. Почти уверен в этом, т.к. у нас работает возможность ограничивать количество подключений к СУБД, т.е. сервер приложений держит столько коннектов к БД, сколько ему указано и на это количество выстраивает пул запросов. Думаю что если бы создавались неявные, то они бы блокировались... С серверными курсами да, похоже на действительность. Могу ошибаться :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2006, 23:42 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
iscrafm softwarerХм. Может быть, я ошибаюсь, но как мне представляется, тот скрипт, который Вы привели, весь целиком является единственным statement-ом. там их несколько на самом деле, Не думаю. Если грубо и на пальцах, Statement - это объект, обладающий свойствами Connection (соединение, к которому относится), Text (собственно текст команды), а также методами Prepare и Execute. То, что Вы написали - это Text одного-единственного statement-а. MSSQL, в отличие допустим от Oracle, умеет воспринимать и выполнять подобные скрипты, но из этого никак не следует, что в этом участвует несколько statement-ов (напомню, statement именно в том смысле, который употребил Дмитрий. В дельфе это понятие представлено различными наследниками TDataSet). iscrafmТот примерчик что Вы привели конечно клиентский курсор не потянет. Если так, то Дмитрий видимо прав в своем исходном утверждении. Не знаю как другие, а Oracle такой пример выполнит без малейших проблем. То есть расхождение реально есть, и именно в случае гридов оно "стрельнет" при попытке переноса приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2006, 23:59 |
|
||
|
MSSQL и другие & клиентские курсоры
|
|||
|---|---|---|---|
|
#18+
iscrafmhvlad, может я конечно чего-то не понимаю, но мы в этом топике обсуждаем клиентские курсорыДа, конечно клиентские iscrafmа MARS расширяет возможности серверныхКак раз клиентских :) Во-первых, это из "Features of SQL Native Client", во-вторых, из вышеупомянутой ссылки BOLSQL Server 2005 provides support for multiple active result sets (MARS) in applications accessing the Database Engine. In earlier versions of SQL Server, database applications could not maintain multiple active statements on a connection. When using SQL Server default result sets, the application had to process or cancel all result sets from one batch before it could execute any other batch on that connection. SQL Server 2005 introduces a new connection attribute that allows applications to have more than one pending request per connection, and in particular, to have more than one active default result set per connection. MARS simplifies application design with the following new capabilities: Applications can have multiple default result sets open and can interleave reading from them. Applications can execute other statements (for example, INSERT, UPDATE, DELETE, and stored procedure calls) while default result sets are open. iscrafmИли мы о разных курсорах общаемся? Клиентский курсор никаких неявных коннектов не создает. Почти уверен в этом, т.к. у нас работает возможность ограничивать количество подключений к СУБД, т.е. сервер приложений держит столько коннектов к БД, сколько ему указано и на это количество выстраивает пул запросов. Думаю что если бы создавались неявные, то они бы блокировались... С серверными курсами да, похоже на действительность. Могу ошибаться :)Пул запросов или пул коннектов ? :) Возможно в вашем сервере приложений просто нет ситуации когда в одном коннекте нужно иметь открытыми более одного клиентского курсора - например вы используете серверные курсоры, или сразу кешируете на клиенте всю выборку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2006, 00:52 |
|
||
|
|

start [/forum/topic.php?all=1&fid=35&tid=1553512]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
121ms |
get tp. blocked users: |
2ms |
| others: | 194ms |
| total: | 402ms |

| 0 / 0 |
