| 
 | 
| 
 
Как организовать программу, чтоб потом было меньше подводных камней? 
 | 
|||
|---|---|---|---|
| 
 #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&msg=33272304&tid=1549557]:  | 
    0ms | 
get settings:  | 
    8ms | 
get forum list:  | 
    13ms | 
check forum access:  | 
    4ms | 
check topic access:  | 
    4ms | 
track hit:  | 
    40ms | 
get topic data:  | 
    10ms | 
get forum data:  | 
    2ms | 
get page messages:  | 
    55ms | 
get tp. blocked users:  | 
    2ms | 
| others: | 236ms | 
| total: | 374ms | 

| 0 / 0 | 

На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даете согласие с использованием данных технологий.