powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ограничить количество записей в ComboBox, для уменьшения трафика с SQL Server
11 сообщений из 11, страница 1 из 1
Ограничить количество записей в ComboBox, для уменьшения трафика с SQL Server
    #39832876
Geizer1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача: есть 'Таблица1' и на её основе 'Форма1' для редактирования данных. В 'Форма1' поисковое поле со списком 'ПоисковыйКомбоБокс',
содержимое выпадающего списка ограничиваются значениями полей 'F2_Фильтр', 'F3_Фильтр'. Система работает, но есть ньюанс).
Таблица1 находится на Ms SQL Server. Цель максимально ограничить трафик, для повышения быстродействия системы.
Для пояснения в примере преведены запросы: Запрос_Топ100_серв даёт трафик 114кбайт, Запрос_МаксЧислоЗаписей100_серв даёт трафик 30кбайт,
ну и запрос без ограничений 'Запрос_серв' - куча мегабайт.
Правда локальный Запрос_МаксЧислоЗаписей100 (не ограничивает количество строк) работает не так как Запрос_МаксЧислоЗаписей100_серв.
Получается что SELECT TOP 100 Таблица1.... скачивает не 100 записей а на много больше, а надо именно 100.
...
Рейтинг: 0 / 0
Ограничить количество записей в ComboBox, для уменьшения трафика с SQL Server
    #39832992
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geizer1,
На мой взгляд было бы намного правильней добавить еще одну-две таблицы: категория (заготовки,инструмент абразивный....):подкатегория (в зависимости от выбранной категории:стержень,брусок...):материалРазмер(d 6х100мм Р6АМ5 HRC 64-66 "CNIC", d 6х150мм Р6АМ5 HRC 64-66 "CNIC")как-то так. На форме разместить 3 зависимых поля и проводить отбор по ним. На форме отразится необходимый и достаточный минимум записей(а сколько их будет, в зависимости от выбранной категории и подкатегории, не суть важно). У Вас таблица создана с грубым нарушением правил "базостроения" и вся дальнейшая работа с данными,хранимыми в ней,ооочень усложняется
...
Рейтинг: 0 / 0
Ограничить количество записей в ComboBox, для уменьшения трафика с SQL Server
    #39833378
Geizer1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdkuGeizer1,
На форме разместить 3 зависимых поля и проводить отбор по ним. На форме отразится необходимый и достаточный минимум записей(а сколько их будет, в зависимости от выбранной категории и подкатегории, не суть важно).
Таблица в примере была скачана с инета - это просто прайс лист торговой компании. Мне не хотелось выкладывать реальные данные, а наполнить пример чем то надо было, что бы был объем данных и трафик.
В реальной таблице 4 текстовых поля (1-3 слова в каждом) повторяемости почти нет и по каждому возможен выбор-отсев данных.
По результату операции мне вполне подошел бы оператор Top в инструкции Select, но трафик при его применении гораздо больше чем ожидается, если не вводить ограничения в фильтрующие поля.
Вы предлагаете сразу заставить пользователя сделать максимально точный выбор, тем самым и сократить количество возвращаемых записей. И это придётся сделать, если мы тут не найдём ещё какой то вариант.
...
Рейтинг: 0 / 0
Ограничить количество записей в ComboBox, для уменьшения трафика с SQL Server
    #39833442
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geizer1...Таблица в примере была скачана с инета - это просто прайс лист торговой компании.... тогда и говорить надо о прайсе торговой компании-а если о Вашей проблеме ,то и данные нужны Ваши (чтоб увидеть реальную организацию данных-в прайсе она никакая)
...
Рейтинг: 0 / 0
Ограничить количество записей в ComboBox, для уменьшения трафика с SQL Server
    #39834539
Geizer1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Убрал я оператор TOP совсем. Сделал именованный запрос аналогичный выпадающему списку. Повесил ограничение на количество строк по событию 'Вход' выпадающего списка.
В этом событии из именованного запроса функцией Dcount считаю количество строк (1-2 кбайт трафик). Если строк больше лимита, то фокус на поля задающие ограничения. Получилось вполне экономичное решение.
Здесь на форуме вспоминали свойство ListCount, так вот оно приводит к трафику равному содержимому выпадающего списка.
Моё решение меня устраивает, можно топик закрывать.
...
Рейтинг: 0 / 0
Ограничить количество записей в ComboBox, для уменьшения трафика с SQL Server
    #39834658
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geizer1.... Цель максимально ограничить трафик, для повышения быстродействия системы.Geizer1.....считаю количество строк (1-2 кбайт трафик). Если строк больше лимита, то фокус на поля задающие ограничения. При вычислительной мощи современного(даже самого дешманского)компьютера говорить даже о нескольких десятках КВ,как минимум, смешно-а уж если с 2 КВ работает медленно,то дело явно не в объеме
...
Рейтинг: 0 / 0
Ограничить количество записей в ComboBox, для уменьшения трафика с SQL Server
    #39834661
Geizer1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku При вычислительной мощи современного(даже самого дешманского)компьютера говорить даже о нескольких десятках КВ,как минимум, смешно-а уж если с 2 КВ работает медленно,то дело явно не в объеме
Предвидя подобные реплики я и выкладывал в примере таблицу в которой много буковок.) Если не ограничивать трафик то речь идёт о
сотнях кбайт, а если пользователь начнёт колёсико крутить и просматривать выпадающий список то и Мбайты появятся.
По моему лучше пусть сервер у себя в памяти поищет и выдаст результат, чем он всё это будет передавать по сетке.
...
Рейтинг: 0 / 0
Ограничить количество записей в ComboBox, для уменьшения трафика с SQL Server
    #39834664
Geizer1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1-2 кбайт трафик это сама функция Dcount. Весь объем выборки это свойство ListCount.
...
Рейтинг: 0 / 0
Ограничить количество записей в ComboBox, для уменьшения трафика с SQL Server
    #39834694
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geizer1,
не могу я "вкурить" следующее:ограничили Вы список,а пользователю нужно наименование которое,в силу ограничения, не попало в список-его там нет,но в таблице оно присутствует-как юзеру его выбрать? непонятно,однако.
только максимальная структуризация данных-других вариантов,лично я,не вижу:
Geizer1...Вы предлагаете сразу заставить пользователя сделать максимально точный выбор, тем самым и сократить количество возвращаемых записей. И это придётся сделать, если мы тут не найдём ещё какой то вариант. Не найдем!
максимальное,в пределах разумного, структурирование данных спасет "отца русской демократии"-(12 стульев)
...
Рейтинг: 0 / 0
Ограничить количество записей в ComboBox, для уменьшения трафика с SQL Server
    #39834696
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вдогонку: а ListCount возвращает только число элементов списка-цифру
...
Рейтинг: 0 / 0
Ограничить количество записей в ComboBox, для уменьшения трафика с SQL Server
    #39835001
Geizer1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdkuGeizer1,
не могу я "вкурить" следующее:ограничили Вы список,а пользователю нужно наименование которое,в силу ограничения, не попало в список-его там нет,но в таблице оно присутствует-как юзеру его выбрать? непонятно,однако.
только максимальная структуризация данных-других вариантов,лично я,не вижу:
Geizer1...Вы предлагаете сразу заставить пользователя сделать максимально точный выбор, тем самым и сократить количество возвращаемых записей. И это придётся сделать, если мы тут не найдём ещё какой то вариант. Не найдем!
максимальное,в пределах разумного, структурирование данных спасет "отца русской демократии"-(12 стульев)

Я же писал выше что оператор Top я убрал совсем (он не эффективен, строки ограничивает а трафик нет), других способов ограничить число строк в выпадающем списке тут не прозвучало.
Я просто определяю количество строк до того как выпадающий список может быть открыт, и вывожу сообщение пользователю если лимит превышен. Вводя в фильтрующие поля символы пользователь ограничит количество строк и получит результат. В каком то смысле это тоже самое что и вы предлагаете.

sdkuвдогонку: а ListCount возвращает только число элементов списка-цифру
Я не совсем корректно написал 2-е предложение. Конечно ListCount возвращает число, но для этого Access тянет через сеть весь объем выпадающего списка.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ограничить количество записей в ComboBox, для уменьшения трафика с SQL Server
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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