powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Альтернатива ADO для быстрой работы с базой при слабом инете
18 сообщений из 18, страница 1 из 1
Альтернатива ADO для быстрой работы с базой при слабом инете
    #36822076
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую всех.
База на SQL Server 2008 R2 Express Edition
Пользователи через инет подключаются с удаленных мест к базе.
Клиентская часть написана на VB6 с применением ADO, ComponentOne TrueDBGrid
При слабом инете скорость работы с данными в Grid'е, вообще загрузка данных, даже обычный SELECT "не почеловечески виснет" (ForwardOnly, ReadOnly recordset)
Как можно исправить ситуацию? Инет ускорить возможности нету, может быть есть другие компоненты доступа к данным? Заместо ADO, для более быстрой работы?
Ммм... какой-нибудь собственный direct-connect или еще что

Кстати, строка подключения Provider=SQLOLEDB;Data Source и т.д.
Спасибо за внимание и надеюсь на помощь
...
Рейтинг: 0 / 0
Альтернатива ADO для быстрой работы с базой при слабом инете
    #36822084
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перегружать рекордсет локально (в массив или в локальный рекордсет) и использовать без постоянных запросов к базе.
...
Рейтинг: 0 / 0
Альтернатива ADO для быстрой работы с базой при слабом инете
    #36822096
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще какой-нибудь вариант, кроме сохранения
...
Рейтинг: 0 / 0
Альтернатива ADO для быстрой работы с базой при слабом инете
    #36822110
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: orunbek
> еще какой-нибудь вариант, кроме сохранения

трех-звенку, прием-передача архивируется(я использую zlib.dll) + то что посоветовал Shocker.Pro

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Альтернатива ADO для быстрой работы с базой при слабом инете
    #36822141
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока остановился на этом варианте: возврат записей через ADODB.Command
посмотрим что получится
...
Рейтинг: 0 / 0
Альтернатива ADO для быстрой работы с базой при слабом инете
    #36822144
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Распределенную базу еще можно.
Поставь в филиалы урезанные микро-базы, и раз в цать минут синхронизируй их с базой в главном офисе. Удаленные клиенты будут подключаться к своим локальным копиям. Тормоза интернета будут "спрятаны" под репликацией.

Искать замену ADO - бессмысленно.
Вот если б речь шла о медленной машине со быстрой сетью, и умением/возможностью работать с нативными интерфейсами (это означает выкидываешь VB, переходишь на C). Тогда переход с ADO был бы оправдан. Да и то вряд-ли. Оверхед у ADO конечно есть, но он настолько минимальный что пользователям он практически не заметен.
...
Рейтинг: 0 / 0
Альтернатива ADO для быстрой работы с базой при слабом инете
    #36822160
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что-нить подобное Direct Oracle Access для SQL-сервера нету?
...
Рейтинг: 0 / 0
Альтернатива ADO для быстрой работы с базой при слабом инете
    #36824558
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не надо пытаться показать в Grid-е весь миллион найденных записей. Используя SELECT TOP или соответствующее свойство Recordset-а нужно ограничить выборку несколькими десятками - для того чтобы продолжить поиск юзер пускай уточняет запрос, а не листает Recordset...
...
Рейтинг: 0 / 0
Альтернатива ADO для быстрой работы с базой при слабом инете
    #36824677
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbekчто-нить подобное Direct Oracle Access для SQL-сервера нету?Конечно есть. TDS называется.
Но если ты сумеешь на VB работать с ним быстрее чем через ADO - я тебе лично памятник поставлю с надписью "Самому быстрому извращенцу" :)
...
Рейтинг: 0 / 0
Альтернатива ADO для быстрой работы с базой при слабом инете
    #36827173
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndrFНе надо пытаться показать в Grid-е весь миллион найденных записей. Используя SELECT TOP или соответствующее свойство Recordset-а нужно ограничить выборку несколькими десятками - для того чтобы продолжить поиск юзер пускай уточняет запрос, а не листает Recordset...

Миллион записей и не отображается, максимум 50 записей отображается, фильтр по дате и т.д.

White Owlorunbekчто-нить подобное Direct Oracle Access для SQL-сервера нету?Конечно есть. TDS называется.
Но если ты сумеешь на VB работать с ним быстрее чем через ADO - я тебе лично памятник поставлю с надписью "Самому быстрому извращенцу" :)
Раз я это в теме VB написал, то соотвественно имел в виду компонент или способ быстрого доступа к базе SQL Server, который можно использовать именно в VB6
...
Рейтинг: 0 / 0
Альтернатива ADO для быстрой работы с базой при слабом инете
    #36827180
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
здесь написано:

автор
....
....
1. System.Data.SqlClient

Хотя этот инструмент не имеет оболочки пользовательского интерфейса (в отличие от других инструментов этого списка), он является новшеством для работы с базами данных SQL Server в Visual Studio.NET. Использование протокола Tabular Data Stream (TDS) классом System.Data.SqlClient в ADO.NET, в отличие от более ранних версий ADO использующих OLE DB, предоставляет возможность разработчикам задействовать более родное и самое быстрое подключение приложения к SQL Server по протоколу TDS.
....
....


Значит если необходимо писать приложение в котором очень важен скорость доступа к данным, то лучше писать на VB.NET? С использованием System.Data.SqlClient
...
Рейтинг: 0 / 0
Альтернатива ADO для быстрой работы с базой при слабом инете
    #36827283
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbek,

совершеннейшее ИМХО.

Если открываешь одно соединение, считываешь данные на клиента, закрываешь соединение, то каким бы ты способом это не делал, разницы для пользователя особо не будет. Основное время - передача по каналу данных, а накладные расходы (установка соединения, отправка запроса) мизерные.

DataGrid же пытается открыть курсор на сервере, ездить по нему, держать и поддерживать открытое соединение. Вот тут и начинают накладные расходы превалировать над передачей данных. И переход с АДО на какую-то другую технологию без смены самого алгоритма проблему не решит, ну, допустим, получишь ускорение в 20% на накладных расходах. На скорость передачи данных это не повлияет (упираемся в канал) и на наличие этих постоянных накладных расходов - это проблема датагрида, а не технологии доступа.
Все это можно посмотреть и оценить в профайлере.

Так что лучше скачать данные на клиента, 50 записей - это не так уж много.
...
Рейтинг: 0 / 0
Альтернатива ADO для быстрой работы с базой при слабом инете
    #36827335
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу Grid'а, я знаю причину медленной работы, и в этом плане и не собираюсь решать проблему, в принципе устраивает
Проблема была в том, что обычный SELECT * FROM Table WHERE ID=N работает очень медленно, иногда даже отваливается, параметры recordset'а ForwardOnly, ReadOnly
Затем нашел другой способ получение результата через хранимку посредством ADODB.Command, в котором хранимка возвращает тот же SELECT * FROM Table WHERE ID=N, в этом случае случаев отваливания соединения или ошибки выполнения команды вразы меньше стало, и время возврата данных тоже увеличилось, о чём и писал в первых 2-3 сообщениях
...
Рейтинг: 0 / 0
Альтернатива ADO для быстрой работы с базой при слабом инете
    #36827352
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никакой разницы быть не должно.
От ADO сервер получает команду на выполнения запроса или команду на выполнения процедуры и возвращает рекордсет. С точки зрения АДО ничего не меняется, по-разному обрабатывается это исключительно сервером.

Предварительная компиляция (процедура) против динамического запроса при таком простом запросе видимого выигрыша не даст.

P.S. Вам точно звездочка в запросе нужна?
...
Рейтинг: 0 / 0
Альтернатива ADO для быстрой работы с базой при слабом инете
    #36827917
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT * FROM
это я так написал, здесь на форуме
в реале идет выборка полей, попробовал через recordset и через ADODB.Command - хранимка возвращает recordset, разница есть
...
Рейтинг: 0 / 0
Альтернатива ADO для быстрой работы с базой при слабом инете
    #36827921
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Альтернатива ADO для быстрой работы с базой при слабом инете
    #36830789
MAYAKOV_SV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbekПо поводу Grid'а, я знаю причину медленной работы, и в этом плане и не собираюсь решать проблему, в принципе устраивает
Проблема была в том, что обычный SELECT * FROM Table WHERE ID=N работает очень медленно, иногда даже отваливается, параметры recordset'а ForwardOnly, ReadOnly
Может еще поигратся с другими параметрами Recordset?
1) CacheSize установить попробовать (по умолчанию 1), например 100
2) rs.Open ... adAsyncExecute
3) CursorLocation = adUseClient
...
Рейтинг: 0 / 0
Альтернатива ADO для быстрой работы с базой при слабом инете
    #36830970
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAYAKOV_SV,

ок, попробую и такой вариант
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Альтернатива ADO для быстрой работы с базой при слабом инете
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]