|
|
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
Хочу найти лучший вариант для работы вот с какими запросами... Для начала немного истории: Специфика базы такова, что ежедневно закачивается таблица (больше 600 000 записей) на базе которой потом формируется куча всяких отчетов (ну и просто ее изучают, фильтруют, сортируют и все такое). Так вот, проблема в следующем: запросы сложные и хотелось бы их с оптимизировать (и по скорости и способу хранения и использованию). Идеальным вариантом я конечно вижу хранения запросов в виде постоянных скомпилированных/оптимизированных Queries в базе. Достоинства: 1. запрос уже с оптимизирован и работает быстрее 2. в сложных запросах, эти сохраненые запросы вызываются из других. Недостатки: 1. Всего лишь один. Имя таблицы как параметр не передашь и потому если таблицы имеют разные название (но и при этом абсолют. одинаковую структуру), то нифига не сделаешь. То бишь, вопрос. Как лучше хранить/использовать запросы, если меняется имя таблицы (а структура ее постоянна)? Как варианты: 1. генерить строку SQL - это всем понятно, недостатки известны, вообщем именно от этого и хотелось бы уйти. 2. менять имя таблицы на время запуска запроса. Опасно и малоприемливо (скоко всяких нехороших глюков можно породить) P.S. или может я зря так геммороюсь и есть какой-нибудь станд. способ передачи в запрос в качестве параметра имя таблицы?, а я тут фигней всякой страдаю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 15:50 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
2. менять имя таблицы на время запуска запроса. Опасно и малоприемливо (скоко всяких нехороших глюков можно породить) 3. Вместо обращения к таблице использовать сохраненный запрос select * from Таблица. И править его. И таблицы целы, и запрос только один на каждую табличку надо править. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 15:55 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
Заведи одну вместо них всех. И нет проблем. 2 Вариант Создай другую базюку со связанной табличкой, которая смотрит на твою. И у связанной таблички кодом меняй источник. Если у тебя код и данные в одном месте, надо срочно делить. Это азбука. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 16:06 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
<I>3. Вместо обращения к таблице использовать сохраненный запрос select * from Таблица. И править его. И таблицы целы, и запрос только один на каждую табличку надо править.</I> Остро, позарубежному (с) "Две башни снесло" А этот запрос соответственно править через DAO, типа dbs.QueryDefs("ля-ля").SQL="select * from " & ИмяТаблицы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 16:11 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
А может, создать хранилище, и сбрасывать туда все, что надо для получения отчетов. Кстати, интересно, что содержат эти таблички с одинаковой структурой? Почему их много? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 16:18 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
2Shark: Одну не заведешь... :( Каждый день новая приходит, а пихать в одну тоже не вариант, потому как объем сильно растет, и притом старые так и так удаляют, а иногда надо наоборот именно старую из архива достать и с нее пару очетов сварганить. Данные и код пока в одной ;-) этот опытный образец, будет результат, будет и сервак и все остальное... Думаете уже настала пора разделять... Если связанные таблицы, то это конечно надо разделить базу на две части и запускать у себя сразу и сервер с данными и клиент, только вот интересно как там со скоростью будет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 16:21 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
Боюсь, что после таких финтов (с заменой SQL-инструкции) - скорость выполнения останется прежней (ну сэкономишь долю процента от общего времени выполнения, если не меньше - проверить легко) . Остается только использовать агрегированные таблицы (сворачивать, например дни в недели (1 таблица), в месяцы - 2-я таблица , кварталы, годы) да и еще по разным уровням. Такой аля самопальный олап городить в момент закачки данных. Увеличится время закачки -но зато ускорится время выборки. == А еще остается тема нормализации структуры бд ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 16:30 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
Varan: как я уже говорил, пузо треснет все в базу пихать, да и не надо это по большому счету. А объем.... это всего лишь баланс банка на конец рабочего дня... денюжжжжжки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 16:34 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
Согласен с Виктором. Вряд ли по этой информации будут строится отчеты, отображающие просто данные таблицы, скорее всего что-то суммарное в разных разрезах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 16:39 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
SergeySV , баланс, насколько мне известно, это просто число, объем его невелик :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 16:39 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
>это всего лишь баланс банка на конец рабочего дня Банк на Access'e??? А как называется? //надо деньги спасать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 16:39 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
Senin Viktor, он,наверное, сбрасывает данные в Access из какой-то другой системы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 16:47 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
2Varan >он,наверное, сбрасывает данные в Access из какой-то другой системы. Пришел Ржевский и все опошлил :) Да понятно, что на акесе банке работать не будет - я просто по прикалываться захотел. Банк и Акес, да еще и в режиме 24*7 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 17:03 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
БИС то конечно на AS-400 пашет :) Имеются виды полный список счетов по балансовым позициям и работать приходится именно с основной таблицей, агригированныъ будет стокоже скоко и запросов (ну ладно, чуть меньше), но в общем все равно, в основом от большой основной таблицы никуда не денешься. А как вы смотрите на вариант со связанной таблицей? (сам никогда так не пробовал, как хоть по ощущениям, какие плюсы, минусы?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 17:43 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
Senin Viktor, так ты просто Access не уважаешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 17:46 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
"Да понятно, что на акесе банке работать не будет " Если тебе давно понятно, что Access - ненадежная система, чего ж ты с рядом товарищей тут нам насчет ADP голову морочите. Сказали бы прямо - Access - туфта и детская игрушка, и чем быстрее с него соскочишь, тем лучше... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 17:51 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
2Varan >так ты просто Access не уважаешь? ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 17:52 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
>Если тебе давно понятно, что Access - ненадежная система, чего ж ты с рядом товарищей тут нам насчет ADP голову морочите. Не путай божий дар с яичнецей. Акес-adp - это не есть Акес-mdb. Надежных систем не бывает и быть не может. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 17:59 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
о Varan как завелся... :) Access все-таки настольная база данных и до Банковских Информационных Систем ей далеко, у них задачи разные. Там мягко говоря маштабы разные и требования к надежности. Такие системы вообще НЕ для людей делаются, в отличии от Access... ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 18:02 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
Senin Victor, А что, SergeySV указал, adp или mdb он там в своем банке использует? Тебя просто от смеха разобрало, как ты узнал, что в банке пользуют Access, значит ты уверен в том, что Access - ненадежная система, и тот, кто использует ее для серьезных целей, достоин осмеяния. И при этом ты советуешь переходить на ADP! Не просматривается ли тут двуличность? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 18:03 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
2 SergeySV А обязательно использовать аксесс в качестве базы данных, при таких объемах и требованиях? Может лучше SQL? Там можно не мучаться и сделать все на одной таблице. Выборка по ключевому полю очень быстро работает. Вот только операция добавления/удаления записей будет притормаживать. 2 Varan Просто нет слов - убил наповал. Поскольку я в числе тех товарищей, которые пропагандируют переход на ADP, скажу что глючность (или отсутствие таковой) аксеса при работе в режиме ADP, на надежность базы данных практически не влияет. За четыре года моим юзерам так и не удалось ни разу завалить базу данных. Персональная справка: mdb - база данных аксесс adp - база данных MS SQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 18:07 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
Break, break по углам, иначе я щас позову судью... :) Давайте не будем отходить от первоначальной темы. Все мы тут хорошо знаем что из себя представляет Access, и в чем ее прелести и недостатки, и раз мы тут обсуждаем проблемы и нюансы использования этой самой Access, то я вообще не понимаю зачем начинать выяснять отношения по поводу нее... :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 18:09 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
"Банк на Access'e??? А как называется? //надо деньги спасать" - вот что сказал Ваш уважаемый товарищ, не уточнив, что он имел в виду. Может он имел в виду MSSQL + оболочка ADP? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 18:11 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
И кому после этого верить? Я щас матом начну крыть, чтобы оправдать навешанное на меня сравнение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 18:13 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
2incold: переход на SQL запланирован, но пока токо в будущем, сначала она должна показать себе так сказать на месте. (да и честно говоря даже на SQL я бы не рискнул туда пихать все в одну таблицу: 1день - 600 000, месяц - 15 мил., при том что 95 не пок ане нужны, а понадобиться например какой-нибудь позапозапрошлый месяц и то, ну не считая конечно сегодняшнего дня) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 18:15 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32306555&tid=1678622]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
32ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 371ms |

| 0 / 0 |
