powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Динамический запрос: разные имена таблиц
25 сообщений из 43, страница 1 из 2
Динамический запрос: разные имена таблиц
    #32306306
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу найти лучший вариант для работы вот с какими запросами...

Для начала немного истории: Специфика базы такова, что ежедневно закачивается таблица (больше 600 000 записей) на базе которой потом формируется куча всяких отчетов (ну и просто ее изучают, фильтруют, сортируют и все такое).
Так вот, проблема в следующем: запросы сложные и хотелось бы их с оптимизировать (и по скорости и способу хранения и использованию). Идеальным вариантом я конечно вижу хранения запросов в виде постоянных скомпилированных/оптимизированных Queries в базе. Достоинства:
1. запрос уже с оптимизирован и работает быстрее
2. в сложных запросах, эти сохраненые запросы вызываются из других.

Недостатки:
1. Всего лишь один. Имя таблицы как параметр не передашь и потому если таблицы имеют разные название (но и при этом абсолют. одинаковую структуру), то нифига не сделаешь.

То бишь, вопрос. Как лучше хранить/использовать запросы, если меняется имя таблицы (а структура ее постоянна)?

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

P.S. или может я зря так геммороюсь и есть какой-нибудь станд. способ передачи в запрос в качестве параметра имя таблицы?, а я тут фигней всякой страдаю...
...
Рейтинг: 0 / 0
Динамический запрос: разные имена таблиц
    #32306314
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2. менять имя таблицы на время запуска запроса. Опасно и малоприемливо (скоко всяких нехороших глюков можно породить)

3. Вместо обращения к таблице использовать сохраненный запрос select * from Таблица. И править его. И таблицы целы, и запрос только один на каждую табличку надо править.
...
Рейтинг: 0 / 0
Динамический запрос: разные имена таблиц
    #32306333
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заведи одну вместо них всех. И нет проблем.
2 Вариант
Создай другую базюку со связанной табличкой, которая смотрит на твою. И у связанной таблички кодом меняй источник.

Если у тебя код и данные в одном месте, надо срочно делить. Это азбука.
...
Рейтинг: 0 / 0
Динамический запрос: разные имена таблиц
    #32306346
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
<I>3. Вместо обращения к таблице использовать сохраненный запрос select * from Таблица. И править его. И таблицы целы, и запрос только один на каждую табличку надо править.</I>

Остро, позарубежному (с) "Две башни снесло"

А этот запрос соответственно править через DAO, типа dbs.QueryDefs("ля-ля").SQL="select * from " & ИмяТаблицы
...
Рейтинг: 0 / 0
Динамический запрос: разные имена таблиц
    #32306358
Фотография Varan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может, создать хранилище, и сбрасывать туда все, что надо для получения отчетов.
Кстати, интересно, что содержат эти таблички с одинаковой структурой? Почему их много?
...
Рейтинг: 0 / 0
Динамический запрос: разные имена таблиц
    #32306362
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Shark: Одну не заведешь... :( Каждый день новая приходит, а пихать в одну тоже не вариант, потому как объем сильно растет, и притом старые так и так удаляют, а иногда надо наоборот именно старую из архива достать и с нее пару очетов сварганить.

Данные и код пока в одной ;-) этот опытный образец, будет результат, будет и сервак и все остальное... Думаете уже настала пора разделять... Если связанные таблицы, то это конечно надо разделить базу на две части и запускать у себя сразу и сервер с данными и клиент, только вот интересно как там со скоростью будет...
...
Рейтинг: 0 / 0
Динамический запрос: разные имена таблиц
    #32306374
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Боюсь, что после таких финтов (с заменой SQL-инструкции) - скорость выполнения останется прежней (ну сэкономишь долю процента от общего времени выполнения, если не меньше - проверить легко) .
Остается только использовать агрегированные таблицы (сворачивать, например дни в недели (1 таблица), в месяцы - 2-я таблица , кварталы, годы) да и еще по разным уровням.

Такой аля самопальный олап городить в момент закачки данных. Увеличится время закачки -но зато ускорится время выборки.

==
А еще остается тема нормализации структуры бд
...
Рейтинг: 0 / 0
Динамический запрос: разные имена таблиц
    #32306382
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Varan: как я уже говорил, пузо треснет все в базу пихать, да и не надо это по большому счету. А объем.... это всего лишь баланс банка на конец рабочего дня... денюжжжжжки
...
Рейтинг: 0 / 0
Динамический запрос: разные имена таблиц
    #32306392
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласен с Виктором.
Вряд ли по этой информации будут строится отчеты, отображающие просто данные таблицы, скорее всего что-то суммарное в разных разрезах.
...
Рейтинг: 0 / 0
Динамический запрос: разные имена таблиц
    #32306393
Фотография Varan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeySV , баланс, насколько мне известно, это просто число, объем его невелик :-)
...
Рейтинг: 0 / 0
Динамический запрос: разные имена таблиц
    #32306395
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>это всего лишь баланс банка на конец рабочего дня

Банк на Access'e???
А как называется? //надо деньги спасать
...
Рейтинг: 0 / 0
Динамический запрос: разные имена таблиц
    #32306409
Фотография Varan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senin Viktor,
он,наверное, сбрасывает данные в Access из какой-то другой системы.
...
Рейтинг: 0 / 0
Динамический запрос: разные имена таблиц
    #32306452
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Varan
>он,наверное, сбрасывает данные в Access из какой-то другой системы.

Пришел Ржевский и все опошлил :)

Да понятно, что на акесе банке работать не будет - я просто по прикалываться захотел. Банк и Акес, да еще и в режиме 24*7
...
Рейтинг: 0 / 0
Динамический запрос: разные имена таблиц
    #32306543
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БИС то конечно на AS-400 пашет :)

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

А как вы смотрите на вариант со связанной таблицей? (сам никогда так не пробовал, как хоть по ощущениям, какие плюсы, минусы?)
...
Рейтинг: 0 / 0
Динамический запрос: разные имена таблиц
    #32306555
Фотография Varan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senin Viktor, так ты просто Access не уважаешь?
...
Рейтинг: 0 / 0
Динамический запрос: разные имена таблиц
    #32306565
Фотография Varan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Да понятно, что на акесе банке работать не будет "
Если тебе давно понятно, что Access - ненадежная система, чего ж ты с рядом товарищей тут нам насчет ADP голову морочите. Сказали бы прямо - Access - туфта и детская игрушка, и чем быстрее с него соскочишь, тем лучше...
...
Рейтинг: 0 / 0
Динамический запрос: разные имена таблиц
    #32306566
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Varan
>так ты просто Access не уважаешь?

)))
...
Рейтинг: 0 / 0
Динамический запрос: разные имена таблиц
    #32306579
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Если тебе давно понятно, что Access - ненадежная система, чего ж ты с рядом товарищей тут нам насчет ADP голову морочите.

Не путай божий дар с яичнецей.
Акес-adp - это не есть Акес-mdb.
Надежных систем не бывает и быть не может.
...
Рейтинг: 0 / 0
Динамический запрос: разные имена таблиц
    #32306591
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
о Varan как завелся... :)

Access все-таки настольная база данных и до Банковских Информационных Систем ей далеко, у них задачи разные. Там мягко говоря маштабы разные и требования к надежности. Такие системы вообще НЕ для людей делаются, в отличии от Access... ;)
...
Рейтинг: 0 / 0
Динамический запрос: разные имена таблиц
    #32306594
Фотография Varan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senin Victor,
А что, SergeySV указал, adp или mdb он там в своем банке использует? Тебя просто от смеха разобрало, как ты узнал, что в банке пользуют Access, значит ты уверен в том, что Access - ненадежная система, и тот, кто использует ее для серьезных целей, достоин осмеяния. И при этом ты советуешь переходить на ADP! Не просматривается ли тут двуличность?
...
Рейтинг: 0 / 0
Динамический запрос: разные имена таблиц
    #32306603
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 SergeySV
А обязательно использовать аксесс в качестве базы данных, при таких объемах и требованиях? Может лучше SQL?
Там можно не мучаться и сделать все на одной таблице.
Выборка по ключевому полю очень быстро работает.
Вот только операция добавления/удаления записей будет притормаживать.

2 Varan
Просто нет слов - убил наповал.
Поскольку я в числе тех товарищей, которые пропагандируют переход на ADP, скажу что глючность (или отсутствие таковой) аксеса при работе в режиме ADP, на надежность базы данных практически не влияет.
За четыре года моим юзерам так и не удалось ни разу завалить базу данных.

Персональная справка:
mdb - база данных аксесс
adp - база данных MS SQL
...
Рейтинг: 0 / 0
Динамический запрос: разные имена таблиц
    #32306608
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Break, break по углам, иначе я щас позову судью... :)

Давайте не будем отходить от первоначальной темы. Все мы тут хорошо знаем что из себя представляет Access, и в чем ее прелести и недостатки, и раз мы тут обсуждаем проблемы и нюансы использования этой самой Access, то я вообще не понимаю зачем начинать выяснять отношения по поводу нее... :(
...
Рейтинг: 0 / 0
Динамический запрос: разные имена таблиц
    #32306613
Фотография Varan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Банк на Access'e???
А как называется? //надо деньги спасать" - вот что сказал Ваш уважаемый товарищ, не уточнив, что он имел в виду. Может он имел в виду MSSQL + оболочка ADP?
...
Рейтинг: 0 / 0
Динамический запрос: разные имена таблиц
    #32306619
Фотография Varan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И кому после этого верить? Я щас матом начну крыть, чтобы оправдать навешанное на меня сравнение.
...
Рейтинг: 0 / 0
Динамический запрос: разные имена таблиц
    #32306623
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2incold: переход на SQL запланирован, но пока токо в будущем, сначала она должна показать себе так сказать на месте.
(да и честно говоря даже на SQL я бы не рискнул туда пихать все в одну таблицу: 1день - 600 000, месяц - 15 мил., при том что 95 не пок ане нужны, а понадобиться например какой-нибудь позапозапрошлый месяц и то, ну не считая конечно сегодняшнего дня)
...
Рейтинг: 0 / 0
25 сообщений из 43, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Динамический запрос: разные имена таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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