powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Как организовать программу, чтоб потом было меньше подводных камней?
25 сообщений из 39, страница 1 из 2
Как организовать программу, чтоб потом было меньше подводных камней?
    #33269177
AlexG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программа работает с БД.
Выбор встал между следующими подходами:
- писать хранимку для каждого набора данных отображаемого на клиенте;
- писать хранимку, возвращающая скопом данные одного типа (относящиеся к одной сущности?), а на клиенте отображать так, как уже надо.
...
Рейтинг: 0 / 0
Как организовать программу, чтоб потом было меньше подводных камней?
    #33269233
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexGПрограмма работает с БД.
Выбор встал между следующими подходами:
- писать хранимку для каждого набора данных отображаемого на клиенте;
- писать хранимку, возвращающая скопом данные одного типа (относящиеся к одной сущности?), а на клиенте отображать так, как уже надо.

Моё имхо...
Выбор способа механизации (хранимка) уже подразумевает ответы на Ваши вопросы.

Например в Оракле хранимая процедура зачастую хуже, чем обычной сиквол запрос (см. план оптимизации).


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

Это как так ? Неужто в продвинутом Оракле такое возможно ? В MSSQL так все как раз наоборот, план ХП кэшируется, что приводит к более быстрому выполнению.
...
Рейтинг: 0 / 0
Как организовать программу, чтоб потом было меньше подводных камней?
    #33269327
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диченка......Это как так ? .........В MSSQL так все как раз наоборот, план ХП кэшируется, что приводит к более быстрому выполнению.

Простите а ХП если внешняя ? на сях писанная ? тоды что ? кэшироваться она может и кэшируеться... А вот анализатор запроса не может её передвинуть или модернизировать (разбить на составляющие как сиквол выражения) - т.к. это единое целое. И не всегда это есть гуд...

Посему маленький запрос в несколько киллобайт начириканный на сикволе, будет летать под ораклом быстрее, если будет содержать минимум инородных (чёрных ящиков) кусков выполнения...

тут надо конечно же оговориться... что это наблюдения из жизни. а не панацея на все случаи жизни...

а милкософт - ну да, хороший движок для маленьких задач...ничего плохого сказать не могу...

удачи Вам
(круглый)
...
Рейтинг: 0 / 0
Как организовать программу, чтоб потом было меньше подводных камней?
    #33269329
AlexG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0 AlexGПрограмма работает с БД.
Выбор встал между следующими подходами:
- писать хранимку для каждого набора данных отображаемого на клиенте;
- писать хранимку, возвращающая скопом данные одного типа (относящиеся к одной сущности?), а на клиенте отображать так, как уже надо.

Моё имхо...
Выбор способа механизации (хранимка) уже подразумевает ответы на Ваши вопросы.

Например в Оракле хранимая процедура зачастую хуже, чем обычной сиквол запрос (см. план оптимизации).


с уважением
(круглый)

Да, почему так???
И еще, если так, то работа с View будет тогда быстрее, получается?
...
Рейтинг: 0 / 0
Как организовать программу, чтоб потом было меньше подводных камней?
    #33269361
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexGДа, почему так???...И еще, если так, то работа с View будет тогда быстрее, получается?

В посте выше вектор мысли был следующий...
1) хранимая процедура - это относиться к механизации процесса. инструментарий если хотите.
2) не всегда использование ХП есть благо. Т.е. не всегда бывает сплошные плюсы. Нуна видеть и минусы.
3) Нет, вью не будет работать быстрее (тут оговорка, речь идёт не о MSSQL). Хотя всё как всегда зависит от конкретной задачи.



с уважением
(круглый)
...
Рейтинг: 0 / 0
Как организовать программу, чтоб потом было меньше подводных камней?
    #33269391
Фотография Диченка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0
Простите а ХП если внешняя ? на сях писанная ? тоды что ? кэшироваться она может и кэшируеться... А вот анализатор запроса не может её передвинуть или модернизировать (разбить на составляющие как сиквол выражения) - т.к. это единое целое. И не всегда это есть гуд...


Это очень надуманное "если". Потому что 99% ХП в нормальных системах состоят из родного T-SQL.

kolobok0
а милкософт - ну да, хороший движок для маленьких задач...ничего плохого сказать не могу...


Да, согласен, движок хороший! Позволяет делать абсолютно все без использования хранимок на сях, в отличие от оракла.

удачи Вам
(круглый)[/quot]
...
Рейтинг: 0 / 0
Как организовать программу, чтоб потом было меньше подводных камней?
    #33269431
AlexG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диченка
Да, согласен, движок хороший! Позволяет делать абсолютно все без использования хранимок на сях, в отличие от оракла.


А что на Oracle недьзя сделать бех хранимок на сях?
...
Рейтинг: 0 / 0
Как организовать программу, чтоб потом было меньше подводных камней?
    #33269530
Фотография Диченка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexG Диченка
Да, согласен, движок хороший! Позволяет делать абсолютно все без использования хранимок на сях, в отличие от оракла.


А что на Oracle недьзя сделать бех хранимок на сях?

Это не ко мне вопрос, а к круглому
...
Рейтинг: 0 / 0
Как организовать программу, чтоб потом было меньше подводных камней?
    #33269642
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexGА что на Oracle недьзя сделать бех хранимок на сях?

там в контексте было слово "если"...

а сделать мона всё...
было бы желание...(я бы перефразировал) был бы спонсор...


с уважением
(круглый)
...
Рейтинг: 0 / 0
Как организовать программу, чтоб потом было меньше подводных камней?
    #33270156
Фотография Аленочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexGПрограмма работает с БД.
Выбор встал между следующими подходами:
- писать хранимку для каждого набора данных отображаемого на клиенте;
- писать хранимку, возвращающая скопом данные одного типа (относящиеся к одной сущности?), а на клиенте отображать так, как уже надо.

Наверное лучше 1, чтобы потом не пришлось долго и упорно клиента переделывать.
...
Рейтинг: 0 / 0
Как организовать программу, чтоб потом было меньше подводных камней?
    #33270157
Фотография Аленочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexGПрограмма работает с БД.
Выбор встал между следующими подходами:
- писать хранимку для каждого набора данных отображаемого на клиенте;
- писать хранимку, возвращающая скопом данные одного типа (относящиеся к одной сущности?), а на клиенте отображать так, как уже надо.

а также, чтобы клиентик ваш "летал" я бы тоже выбрала 1
...
Рейтинг: 0 / 0
Как организовать программу, чтоб потом было меньше подводных камней?
    #33270701
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лично я против "всей логики на ХП". Это монстр получается. Тысячи ХП и Вью. Очень сложные взаимодействия между ними. Очень трудоёмкое написание интерфейса. На каждую элементарную хотелку - нужно писать набор ХП и соответствующий интерфейс и права. На ХП нужно возложить логику обработки данных: проведение документов, проверка целостности, подготовка агрегированных данных, логгирование, кое-какой репортинг. А вот просто навигацию по данным делать на ХП не стоит, т.к. такой навигации очень много и она всё время дополняется новым ф-лом.
...
Рейтинг: 0 / 0
Как организовать программу, чтоб потом было меньше подводных камней?
    #33270944
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще то есть раздел "Программирование".
...
Рейтинг: 0 / 0
Как организовать программу, чтоб потом было меньше подводных камней?
    #33270947
SQL Developer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexGПрограмма работает с БД.
Выбор встал между следующими подходами:
- писать хранимку для каждого набора данных отображаемого на клиенте;
- писать хранимку, возвращающая скопом данные одного типа (относящиеся к одной сущности?), а на клиенте отображать так, как уже надо.
Если то что нельзя сделать 1-им SQL запросом, кандидат на ХП.

Все остальное применения ХП - маразм (или "подводных камней" будет больше),imho.
...
Рейтинг: 0 / 0
Как организовать программу, чтоб потом было меньше подводных камней?
    #33271378
Так_забежал_просто
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL Developer
Если то что нельзя сделать 1-им SQL запросом, кандидат на ХП.
Все остальное применения ХП - маразм (или "подводных камней" будет больше),imho.

Чтобы на каждый чих не переписывать клиента, многие запросы лучше хранить в базе. Код получается не намного сложнее. А если хранить их в базе - почему бы и не обрамить их словами function ... begin ... end? Опять-таки, не намного сложнее. Зато потом что-то поменяется - достаточно будет поправить запрос в базе. Во всяком случае, чего точно делать не надо - это
писать хранимку, возвращающая скопом данные одного типа, с фильтрацией на клиенте. Тормозня будет жуткая, на моих глазах одна самописка от этого загнулась.
...
Рейтинг: 0 / 0
Как организовать программу, чтоб потом было меньше подводных камней?
    #33271489
AlexG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так_забежал_просто SQL Developer
Если то что нельзя сделать 1-им SQL запросом, кандидат на ХП.
Все остальное применения ХП - маразм (или "подводных камней" будет больше),imho.

Чтобы на каждый чих не переписывать клиента, многие запросы лучше хранить в базе. Код получается не намного сложнее. А если хранить их в базе - почему бы и не обрамить их словами function ... begin ... end? Опять-таки, не намного сложнее. Зато потом что-то поменяется - достаточно будет поправить запрос в базе. Во всяком случае, чего точно делать не надо - это
писать хранимку, возвращающая скопом данные одного типа, с фильтрацией на клиенте. Тормозня будет жуткая, на моих глазах одна самописка от этого загнулась.

Так, я имел ввиду не фильтр, а набор полей.
...
Рейтинг: 0 / 0
Как организовать программу, чтоб потом было меньше подводных камней?
    #33271500
AlexG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. у нас есть 3 связанных таблицы с данными. Вся информация содержит поля, например:
123456789
На клиенте нужно отобразить в гриде только эти:
2589
Остальные редактируются не в гриде а вдругих местах. Скажем, в дополнительных окнах.
...
Рейтинг: 0 / 0
Как организовать программу, чтоб потом было меньше подводных камней?
    #33271506
AlexG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу фильтра: естественно он должен быть всегда, т.к. вытащить 1000000 записей и загрузить ими память получив в лучшем случае тормоза, ничего не стоит. Про фильтр я и не говорю.
...
Рейтинг: 0 / 0
Как организовать программу, чтоб потом было меньше подводных камней?
    #33271516
AlexG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу ХП.
Просто необходимо запросы в БД не хранить в коде клиента. Их нужно вынести в тот блок, который может быть изменен без билда клиента. Это пожет быть и ресурсный файл. Но удобней держать все на сервере. Поэтому ХП - это хорошо.
...
Рейтинг: 0 / 0
Как организовать программу, чтоб потом было меньше подводных камней?
    #33272058
SQL Developer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так_забежал_просто SQL Developer
Если то что нельзя сделать 1-им SQL запросом, кандидат на ХП.
Все остальное применения ХП - маразм (или "подводных камней" будет больше),imho.

Чтобы на каждый чих не переписывать клиента, многие запросы лучше хранить в базе. Код получается не намного сложнее.
Хм. А когда приходиться менять запросы то?
В 85-90% случаях при изменения запросов, меняеться и клиенты.
...
Рейтинг: 0 / 0
Как организовать программу, чтоб потом было меньше подводных камней?
    #33272070
SQL Developer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexGТ.е. у нас есть 3 связанных таблицы с данными. Вся информация содержит поля, например:
123456789
На клиенте нужно отобразить в гриде только эти:
2589
Остальные редактируются не в гриде а вдругих местах. Скажем, в дополнительных окнах.
Тогда и надо вытаскивать то что и нужно.
Сделайте VIEW на " есть 3 связанных таблицы с данными"
и вытаскивайте 1,3,4 или 8,9...
А при чем здесь ХП?
...
Рейтинг: 0 / 0
Как организовать программу, чтоб потом было меньше подводных камней?
    #33272304
Так_забежал_просто
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexGТ.е. у нас есть 3 связанных таблицы с данными. Вся информация содержит поля, например:
123456789
На клиенте нужно отобразить в гриде только эти:
2589
Остальные редактируются не в гриде а вдругих местах. Скажем, в дополнительных окнах.
А-а. Ну, если так, тогда, пожалуй, действительно вьюхами всё делать. Если не нравится - тогда остаётся только типа-трёхзвенку ваять, чтобы клиент забирал вообще полное описание интерфейса из БД. Или промежуточный вариант - сделать ХП, которая формирует курсор динамически, с нужным набором полей (набор полей передаётся с клиента).
...
Рейтинг: 0 / 0
Как организовать программу, чтоб потом было меньше подводных камней?
    #33272307
Так_забежал_просто
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тьфу, перемудрил :( Смыслу в последнем варианте не особо много - от вьюхи мало чем отличается.
...
Рейтинг: 0 / 0
Как организовать программу, чтоб потом было меньше подводных камней?
    #33272341
Так_забежал_просто
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL Developer
Хм. А когда приходиться менять запросы то?
В 85-90% случаях при изменения запросов, меняеться и клиенты.
Если усреднять по всем существующим ИС - да, где-то так :) В предельных случаях: если вся логика на клиенте, цифра достигает 100%; у трёхзвенки (в том числе если сервер приложений совмещён с сервером БД) - 0%. Соответственно, понятно - для большого числа рабочих мест хочется поближе к трёхзвенке, и чтобы при этом поменьше напрягаться. Можно, например, для каждой таблички: 1. Передавать на клиент список полей заголовка с названиями, которые МОЖНО отобразить в табличке + имя хранимой процедуры/view, которыми осуществляется выборка данных. 2. Передавать с клиента в базу список полей, которые пользователь не хочет видеть (типа, спрятал) - как аргументы ХП или поля view. 3. Отображать результат.
Отдельные заморочки с фильтрами будут. В общем, фантазия в эту сторону больше работает :) В идеале система должна быть трёхзвенной. Вопрос - насколько это надо и сколько денег предприятие готово на это потратить. А то и не надо заморачиваться, и писать через view - тогда и будут те самые 85-90%
...
Рейтинг: 0 / 0
25 сообщений из 39, страница 1 из 2
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Как организовать программу, чтоб потом было меньше подводных камней?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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