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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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