|
|
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#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 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
Матом не надо, просто пошутили, и все поняли что это шутка... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 18:16 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
2 Varan Может он имел в виду MSSQL + оболочка ADP? Я не Виктор, но рискну сказать, нет - не это имел ввиду. Т.к. в этом случае он бы сказал банк на SQL. Пойми одну простую вещь: есть база данных, а есть клиент (интерфейс) по работе с базой данных. надежность системы на 99,9(9)% определяется базой данных. В режиме mdb при сбое клиента есть риск побить базу данных. В режиме adp максимум, что теряется - это незаконченная транзакция (если знаком такой термин). 2 SergeySV Давай предположим, что ключевое поле в этой большой таблице - счетчик Поле на SQL = int диапазон значений 0-2 147 *** *** т.е. 2 млрд. У меня сейчас работающий проект, с количеством записей в таблицах оперативного учета порядка 1 млн. (и это еще смешное количество для сиквела). Для статистических редко используемых таблиц 15 млн. - просто ерунда. Мой тебе совет - не парься, делай сразу на сиквеле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 18:21 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
Да уж конечно, шутка. "Кто использует mdb - тот дурак и неотесанный мужлан. Кто использует SQL-сервер - тот правильный человек и переходя на этот продукт, сразу же решает все свои проблемы." Это рассуждение тут встречается довольно часто, и у меня складывается такое ощущение, что это не шутка, а политика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 18:22 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
Ну чтож, почувствовал ветер уверенности в своих крыльях и понеся на встречу новым свершениям ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 18:24 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
А оболочка ADP не в Access пишется? Из фразы вашего коллеги можно сделать однозначный вывод - использование такого продукта как MS Access для серьезных целей смехотворно. Больше никакого вывода из его фразы сделать нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 18:26 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
Кто использует mdb - тот дурак и неотесанный мужлан. Кто использует SQL-сервер - тот правильный человек Каждый имеет право на свое мнение, тебя никто ничего не заставляет делать. И потом, для разных задач есть разные средства разработки и т.п. Если бы у меня была задача сделать простейший учет чего-либо вместо Excell - уж поверь делать это на Sql+ADP я бы не стал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 18:26 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
А оболочка ADP не в Access пишется? Из фразы вашего коллеги можно сделать однозначный вывод - использование такого продукта как MS Access для серьезных целей смехотворно. Больше никакого вывода из его фразы сделать нельзя. Вот упрямый Я например, такого вывода не делаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 18:28 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
2Varan > А что, SergeySV указал, adp или mdb он там в своем банке использует? Указал. Хотя и пришлось не много с телепатировать хранения запросов в виде постоянных скомпилированных/оптимизированных Queries в базе Если кто-то скажет, что данный текст может относится к Adp... Geo и Shark тоже стелепатировали :) > Тебя просто от смеха разобрало, как ты узнал, что в банке пользуют Access Не разабрало. Меня уже Акесом (и как его применяют) трудно расмешить > значит ты уверен в том, что Access - ненадежная система (хотя не понятно что ты вкладываешь в смысл "надежность") Уверен. Только не Акес как таковой, а Jet aka mdb, при многопользовательской работе в сети. Как в плане не санкционированного доступа к инфе, так и к не понятным "поломкам" базы. > и тот, кто использует ее для серьезных целей, достоин осмеяния Тогда я первый достоин осмеяния :) Ибо ничего серьезней финансовой корпоративной отчетности в моей фирме нет. Правда мне удалось уговорить рук-во на adp. > И при этом ты советуешь переходить на ADP! Не просматривается ли тут двуличность? Советую переходить и советую уяснить разницу между Акесом как клиентом бд к MS SQL серверу (Adp) и акесом как хранилещем данных (mdb). > "Кто использует mdb - тот дурак и неотесанный мужлан. Кто использует SQL-сервер - тот правильный человек и переходя на этот продукт, сразу же решает все свои проблемы."... Ты наверное не понял советов: если человек делает телефонный справочник (например) для себя - то ему нафиг сиквел не нужен- а кто будет аткое советовать - то дурак, но если в этом справчнике хранятся телефоны любовниц первых лиц гос-ва и важна сохранность (попробуй объяснить, что телка приедет через сутки после того, как захотелось из-за того что база "не открывается" ) либо данный справочник используется в сети и надо разграничить доступ к информации - то сиквел будет правильным решением, хотя подобное можно и в Екцеле такое наваять скрывая-показывая листы в зависимости от чего-то там. Только сколько такая защита про держится? > А оболочка ADP не в Access пишется? А причем тут облочка и данные? Насколько зависит моя безопасность в автомбиле от того, какой костюм я одену: черный или серый? Правда, если я в этот костюм напихаю иголок, пару ножей под полы, полью себя бензином и буду курить в дороге .. тогда - да - зависит. И можно всем говорит: "Костюмы от фабрики "Большивичка" - это пи::дец полный - от них одни трамвы и ожоги" Уфффф...припотел и обалдел == Надеюсь, SergeySV не сильно обидится столь большому оффтопику. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 19:46 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
Senin Viktor, не надо было меня со Ржевским сравнивать :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 19:52 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
Про Ржевского - это, наверно, было отсюда. :^) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 19:59 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
2 Varan, incold надежность системы на 99,9(9)% определяется базой данных. Надежность системы определяется, в первую очередь, ее разработчиком - наличием у него головы на плечах, опыта, подготовки. А уж потом базами данных. Если ты знаешь, в каких случаях в Акцессе left join становится inner'ом, ты эти случаи будешь иметь в виду. Если ты не умеешь пользоваться pointer'ами в С++, то, несмотря на то, как его хвалят, ты ничего хорошего на нем не напишешь. Вот, собсна... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 20:13 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
2Cаныч >Про Ржевского - это, наверно, было отсюда. :^) Оттуда :) А то что оттуда - из анекдота ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 22:39 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
Ну ,вы тут и нафлудили.Сейчас я вас всех помирю: Oracle-Выбор настоящих мужчин! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 23:26 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
2 (c)Vig :) Ну если по ценам сравнивать - то, да, Оракл это сила! //а если и не по ценам - Оракл тоже бд. Как и Акес :) == Специально для плохо понимающих шутки сообщаю - это шутка (про оракл) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 23:34 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
2 Senin Viktor Ну если по ценам сравнивать - то, да, Оракл это сила! !!! Оракл тоже бд. Как и Акес !!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 23:47 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
>Думаете уже настала пора разделять.. Разделять надо СРАЗУ. Это азбука. В одном файле держать приложение и данные- ЭТО ЧУШЬ. Никто так не работает. Особенно важно это разделение на этапе разработки приложения. Вы можете каждый день приносить новые формочки на дискете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 07:41 |
|
||
|
Динамический запрос: разные имена таблиц
|
|||
|---|---|---|---|
|
#18+
2Shark: Одну не заведешь... Я бы на вашем месте сделал одну таблицу. Работать с ней гораздо удобнее и нет никаких проблем удалить-загрузить-выгрузить из нее данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 07:46 |
|
||
|
|

start [/forum/topic.php?all=1&fid=45&tid=1678622]: |
0ms |
get settings: |
5ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
73ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 379ms |

| 0 / 0 |
