|
Как организовать программу, чтоб потом было меньше подводных камней?
|
|||
---|---|---|---|
#18+
Программа работает с БД. Выбор встал между следующими подходами: - писать хранимку для каждого набора данных отображаемого на клиенте; - писать хранимку, возвращающая скопом данные одного типа (относящиеся к одной сущности?), а на клиенте отображать так, как уже надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2005, 14:56 |
|
Как организовать программу, чтоб потом было меньше подводных камней?
|
|||
---|---|---|---|
#18+
AlexGПрограмма работает с БД. Выбор встал между следующими подходами: - писать хранимку для каждого набора данных отображаемого на клиенте; - писать хранимку, возвращающая скопом данные одного типа (относящиеся к одной сущности?), а на клиенте отображать так, как уже надо. Моё имхо... Выбор способа механизации (хранимка) уже подразумевает ответы на Ваши вопросы. Например в Оракле хранимая процедура зачастую хуже, чем обычной сиквол запрос (см. план оптимизации). с уважением (круглый) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2005, 15:11 |
|
Как организовать программу, чтоб потом было меньше подводных камней?
|
|||
---|---|---|---|
#18+
kolobok0 Например в Оракле хранимая процедура зачастую хуже, чем обычной сиквол запрос (см. план оптимизации). с уважением (круглый) Это как так ? Неужто в продвинутом Оракле такое возможно ? В MSSQL так все как раз наоборот, план ХП кэшируется, что приводит к более быстрому выполнению. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2005, 15:13 |
|
Как организовать программу, чтоб потом было меньше подводных камней?
|
|||
---|---|---|---|
#18+
Диченка......Это как так ? .........В MSSQL так все как раз наоборот, план ХП кэшируется, что приводит к более быстрому выполнению. Простите а ХП если внешняя ? на сях писанная ? тоды что ? кэшироваться она может и кэшируеться... А вот анализатор запроса не может её передвинуть или модернизировать (разбить на составляющие как сиквол выражения) - т.к. это единое целое. И не всегда это есть гуд... Посему маленький запрос в несколько киллобайт начириканный на сикволе, будет летать под ораклом быстрее, если будет содержать минимум инородных (чёрных ящиков) кусков выполнения... тут надо конечно же оговориться... что это наблюдения из жизни. а не панацея на все случаи жизни... а милкософт - ну да, хороший движок для маленьких задач...ничего плохого сказать не могу... удачи Вам (круглый) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2005, 15:33 |
|
Как организовать программу, чтоб потом было меньше подводных камней?
|
|||
---|---|---|---|
#18+
kolobok0 AlexGПрограмма работает с БД. Выбор встал между следующими подходами: - писать хранимку для каждого набора данных отображаемого на клиенте; - писать хранимку, возвращающая скопом данные одного типа (относящиеся к одной сущности?), а на клиенте отображать так, как уже надо. Моё имхо... Выбор способа механизации (хранимка) уже подразумевает ответы на Ваши вопросы. Например в Оракле хранимая процедура зачастую хуже, чем обычной сиквол запрос (см. план оптимизации). с уважением (круглый) Да, почему так??? И еще, если так, то работа с View будет тогда быстрее, получается? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2005, 15:34 |
|
Как организовать программу, чтоб потом было меньше подводных камней?
|
|||
---|---|---|---|
#18+
AlexGДа, почему так???...И еще, если так, то работа с View будет тогда быстрее, получается? В посте выше вектор мысли был следующий... 1) хранимая процедура - это относиться к механизации процесса. инструментарий если хотите. 2) не всегда использование ХП есть благо. Т.е. не всегда бывает сплошные плюсы. Нуна видеть и минусы. 3) Нет, вью не будет работать быстрее (тут оговорка, речь идёт не о MSSQL). Хотя всё как всегда зависит от конкретной задачи. с уважением (круглый) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2005, 15:42 |
|
Как организовать программу, чтоб потом было меньше подводных камней?
|
|||
---|---|---|---|
#18+
kolobok0 Простите а ХП если внешняя ? на сях писанная ? тоды что ? кэшироваться она может и кэшируеться... А вот анализатор запроса не может её передвинуть или модернизировать (разбить на составляющие как сиквол выражения) - т.к. это единое целое. И не всегда это есть гуд... Это очень надуманное "если". Потому что 99% ХП в нормальных системах состоят из родного T-SQL. kolobok0 а милкософт - ну да, хороший движок для маленьких задач...ничего плохого сказать не могу... Да, согласен, движок хороший! Позволяет делать абсолютно все без использования хранимок на сях, в отличие от оракла. удачи Вам (круглый)[/quot] ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2005, 15:47 |
|
Как организовать программу, чтоб потом было меньше подводных камней?
|
|||
---|---|---|---|
#18+
Диченка Да, согласен, движок хороший! Позволяет делать абсолютно все без использования хранимок на сях, в отличие от оракла. А что на Oracle недьзя сделать бех хранимок на сях? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2005, 16:01 |
|
Как организовать программу, чтоб потом было меньше подводных камней?
|
|||
---|---|---|---|
#18+
AlexG Диченка Да, согласен, движок хороший! Позволяет делать абсолютно все без использования хранимок на сях, в отличие от оракла. А что на Oracle недьзя сделать бех хранимок на сях? Это не ко мне вопрос, а к круглому ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2005, 16:32 |
|
Как организовать программу, чтоб потом было меньше подводных камней?
|
|||
---|---|---|---|
#18+
AlexGА что на Oracle недьзя сделать бех хранимок на сях? там в контексте было слово "если"... а сделать мона всё... было бы желание...(я бы перефразировал) был бы спонсор... с уважением (круглый) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2005, 17:11 |
|
Как организовать программу, чтоб потом было меньше подводных камней?
|
|||
---|---|---|---|
#18+
AlexGПрограмма работает с БД. Выбор встал между следующими подходами: - писать хранимку для каждого набора данных отображаемого на клиенте; - писать хранимку, возвращающая скопом данные одного типа (относящиеся к одной сущности?), а на клиенте отображать так, как уже надо. Наверное лучше 1, чтобы потом не пришлось долго и упорно клиента переделывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2005, 03:33 |
|
Как организовать программу, чтоб потом было меньше подводных камней?
|
|||
---|---|---|---|
#18+
AlexGПрограмма работает с БД. Выбор встал между следующими подходами: - писать хранимку для каждого набора данных отображаемого на клиенте; - писать хранимку, возвращающая скопом данные одного типа (относящиеся к одной сущности?), а на клиенте отображать так, как уже надо. а также, чтобы клиентик ваш "летал" я бы тоже выбрала 1 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2005, 03:35 |
|
Как организовать программу, чтоб потом было меньше подводных камней?
|
|||
---|---|---|---|
#18+
Лично я против "всей логики на ХП". Это монстр получается. Тысячи ХП и Вью. Очень сложные взаимодействия между ними. Очень трудоёмкое написание интерфейса. На каждую элементарную хотелку - нужно писать набор ХП и соответствующий интерфейс и права. На ХП нужно возложить логику обработки данных: проведение документов, проверка целостности, подготовка агрегированных данных, логгирование, кое-какой репортинг. А вот просто навигацию по данным делать на ХП не стоит, т.к. такой навигации очень много и она всё время дополняется новым ф-лом. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2005, 11:30 |
|
Как организовать программу, чтоб потом было меньше подводных камней?
|
|||
---|---|---|---|
#18+
Вообще то есть раздел "Программирование". ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2005, 12:31 |
|
Как организовать программу, чтоб потом было меньше подводных камней?
|
|||
---|---|---|---|
#18+
AlexGПрограмма работает с БД. Выбор встал между следующими подходами: - писать хранимку для каждого набора данных отображаемого на клиенте; - писать хранимку, возвращающая скопом данные одного типа (относящиеся к одной сущности?), а на клиенте отображать так, как уже надо. Если то что нельзя сделать 1-им SQL запросом, кандидат на ХП. Все остальное применения ХП - маразм (или "подводных камней" будет больше),imho. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2005, 12:32 |
|
Как организовать программу, чтоб потом было меньше подводных камней?
|
|||
---|---|---|---|
#18+
SQL Developer Если то что нельзя сделать 1-им SQL запросом, кандидат на ХП. Все остальное применения ХП - маразм (или "подводных камней" будет больше),imho. Чтобы на каждый чих не переписывать клиента, многие запросы лучше хранить в базе. Код получается не намного сложнее. А если хранить их в базе - почему бы и не обрамить их словами function ... begin ... end? Опять-таки, не намного сложнее. Зато потом что-то поменяется - достаточно будет поправить запрос в базе. Во всяком случае, чего точно делать не надо - это писать хранимку, возвращающая скопом данные одного типа, с фильтрацией на клиенте. Тормозня будет жуткая, на моих глазах одна самописка от этого загнулась. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2005, 14:41 |
|
Как организовать программу, чтоб потом было меньше подводных камней?
|
|||
---|---|---|---|
#18+
Так_забежал_просто SQL Developer Если то что нельзя сделать 1-им SQL запросом, кандидат на ХП. Все остальное применения ХП - маразм (или "подводных камней" будет больше),imho. Чтобы на каждый чих не переписывать клиента, многие запросы лучше хранить в базе. Код получается не намного сложнее. А если хранить их в базе - почему бы и не обрамить их словами function ... begin ... end? Опять-таки, не намного сложнее. Зато потом что-то поменяется - достаточно будет поправить запрос в базе. Во всяком случае, чего точно делать не надо - это писать хранимку, возвращающая скопом данные одного типа, с фильтрацией на клиенте. Тормозня будет жуткая, на моих глазах одна самописка от этого загнулась. Так, я имел ввиду не фильтр, а набор полей. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2005, 15:11 |
|
Как организовать программу, чтоб потом было меньше подводных камней?
|
|||
---|---|---|---|
#18+
Т.е. у нас есть 3 связанных таблицы с данными. Вся информация содержит поля, например: 123456789 На клиенте нужно отобразить в гриде только эти: 2589 Остальные редактируются не в гриде а вдругих местах. Скажем, в дополнительных окнах. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2005, 15:14 |
|
Как организовать программу, чтоб потом было меньше подводных камней?
|
|||
---|---|---|---|
#18+
По поводу фильтра: естественно он должен быть всегда, т.к. вытащить 1000000 записей и загрузить ими память получив в лучшем случае тормоза, ничего не стоит. Про фильтр я и не говорю. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2005, 15:16 |
|
Как организовать программу, чтоб потом было меньше подводных камней?
|
|||
---|---|---|---|
#18+
По поводу ХП. Просто необходимо запросы в БД не хранить в коде клиента. Их нужно вынести в тот блок, который может быть изменен без билда клиента. Это пожет быть и ресурсный файл. Но удобней держать все на сервере. Поэтому ХП - это хорошо. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2005, 15:18 |
|
Как организовать программу, чтоб потом было меньше подводных камней?
|
|||
---|---|---|---|
#18+
Так_забежал_просто SQL Developer Если то что нельзя сделать 1-им SQL запросом, кандидат на ХП. Все остальное применения ХП - маразм (или "подводных камней" будет больше),imho. Чтобы на каждый чих не переписывать клиента, многие запросы лучше хранить в базе. Код получается не намного сложнее. Хм. А когда приходиться менять запросы то? В 85-90% случаях при изменения запросов, меняеться и клиенты. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2005, 18:12 |
|
Как организовать программу, чтоб потом было меньше подводных камней?
|
|||
---|---|---|---|
#18+
AlexGТ.е. у нас есть 3 связанных таблицы с данными. Вся информация содержит поля, например: 123456789 На клиенте нужно отобразить в гриде только эти: 2589 Остальные редактируются не в гриде а вдругих местах. Скажем, в дополнительных окнах. Тогда и надо вытаскивать то что и нужно. Сделайте VIEW на " есть 3 связанных таблицы с данными" и вытаскивайте 1,3,4 или 8,9... А при чем здесь ХП? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2005, 18:16 |
|
Как организовать программу, чтоб потом было меньше подводных камней?
|
|||
---|---|---|---|
#18+
AlexGТ.е. у нас есть 3 связанных таблицы с данными. Вся информация содержит поля, например: 123456789 На клиенте нужно отобразить в гриде только эти: 2589 Остальные редактируются не в гриде а вдругих местах. Скажем, в дополнительных окнах. А-а. Ну, если так, тогда, пожалуй, действительно вьюхами всё делать. Если не нравится - тогда остаётся только типа-трёхзвенку ваять, чтобы клиент забирал вообще полное описание интерфейса из БД. Или промежуточный вариант - сделать ХП, которая формирует курсор динамически, с нужным набором полей (набор полей передаётся с клиента). ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2005, 23:51 |
|
Как организовать программу, чтоб потом было меньше подводных камней?
|
|||
---|---|---|---|
#18+
Тьфу, перемудрил :( Смыслу в последнем варианте не особо много - от вьюхи мало чем отличается. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2005, 23:58 |
|
Как организовать программу, чтоб потом было меньше подводных камней?
|
|||
---|---|---|---|
#18+
SQL Developer Хм. А когда приходиться менять запросы то? В 85-90% случаях при изменения запросов, меняеться и клиенты. Если усреднять по всем существующим ИС - да, где-то так :) В предельных случаях: если вся логика на клиенте, цифра достигает 100%; у трёхзвенки (в том числе если сервер приложений совмещён с сервером БД) - 0%. Соответственно, понятно - для большого числа рабочих мест хочется поближе к трёхзвенке, и чтобы при этом поменьше напрягаться. Можно, например, для каждой таблички: 1. Передавать на клиент список полей заголовка с названиями, которые МОЖНО отобразить в табличке + имя хранимой процедуры/view, которыми осуществляется выборка данных. 2. Передавать с клиента в базу список полей, которые пользователь не хочет видеть (типа, спрятал) - как аргументы ХП или поля view. 3. Отображать результат. Отдельные заморочки с фильтрами будут. В общем, фантазия в эту сторону больше работает :) В идеале система должна быть трёхзвенной. Вопрос - насколько это надо и сколько денег предприятие готово на это потратить. А то и не надо заморачиваться, и писать через view - тогда и будут те самые 85-90% ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2005, 01:46 |
|
|
start [/forum/topic.php?fid=33&fpage=64&tid=1549557]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
78ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 202ms |
0 / 0 |