|
|
|
Заповеди девелопера
|
|||
|---|---|---|---|
|
#18+
У меня в команде появилось 2 программиста новых, и сейчас мои гуру только и занимаются тем что оптимизируют их "SQL-код" :) Я предлагаю сделать большой пост для начинающих разработчиков под Оракл с заповедями, я думаю это будет интересно.... softbuilder, killed, .dba, Scott Tiger - я думаю вы меня поддержите. А потом переработать и попросить администрацию этого сайта выложить статью. И так я начинаю...приосоединяйтесь: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2003, 21:30:44 |
|
||
|
Заповеди девелопера
|
|||
|---|---|---|---|
|
#18+
Я бы еще добавил. Длина транзакции должна быть такой, какой нужно (слишком много нот, дорогой Моцарт - ровно столько, сколько нужно, ваше величество). Лишние коммиты в середине транзакции успокаивают администратора и сегменты отката, но приводят к усложнению логики приложения и повышению вероятности snapshot too old. Особенно на 9, где сегменты отмены ориентируются на время. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2003, 09:50:19 |
|
||
|
Заповеди девелопера
|
|||
|---|---|---|---|
|
#18+
1. replace('ъ','ь') 2. Явно назвай все констрейнты (возможное послабление - not null). 3. Явно называй все индексы. 4. За названия объектов prihod, rashod, lagerbereiche, st_pr_q_val_sum_updt тебя убьют. 5. За DDL как часть боевого кода тебя убьют. 6. Не вылезай за пределы своей схемы. 7. Не создавай индексов без нужды. 8. Создавай индексы, если это необходимо. 9. Комментируй таблицы, триггеры и процедуры. Ещё подумаю, напишу :) P.S. Ну... - за наименьший кост! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2003, 10:24:59 |
|
||
|
Заповеди девелопера
|
|||
|---|---|---|---|
|
#18+
Вот ещё: Во всём нужно знать меру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2003, 10:27:20 |
|
||
|
Заповеди девелопера
|
|||
|---|---|---|---|
|
#18+
Если в чем не уверен, спроси у DBA Если DBA в наличии не имеется, goto www.sql.ru :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2003, 11:05:42 |
|
||
|
Заповеди девелопера
|
|||
|---|---|---|---|
|
#18+
Написал SQL, посмотри план. Если в запросе больше одной таблицы - посмотри обязательно. Если в запросе больше трех таблиц - запрос изначально написал не самым быстрым способом. Смотри план и меняй запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2003, 14:26:07 |
|
||
|
Заповеди девелопера
|
|||
|---|---|---|---|
|
#18+
>Если DBA в наличии не имеется, goto www.sql.ru :)) Я плакалЪ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2003, 14:41:49 |
|
||
|
Заповеди девелопера
|
|||
|---|---|---|---|
|
#18+
Я вообще не уверен (если что - поправьте), но по-моему лучше использовать не прямые объявления типов а конструкции вида Код: plaintext 1. После изменения структуры таблиц, код трогать не надо будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2003, 15:34:22 |
|
||
|
Заповеди девелопера
|
|||
|---|---|---|---|
|
#18+
1. Строй запрос таким образом, что-бы он сам хватал индексы, а не указывай в HINT по какому индексу идти. (Завтра какой нибудь мудило индексы попериименовывает и пойдет задупление). 2. Названия таблиц, полей и переменных должы быть каким либо образом стандартизированны. 3. Все процедуры и ф-ции выноси в отдельные пакеты, объединяя их по смыслу. 4. Коментируй код!!! Я как-то глянул чужой код - чуть не обписался с испугу. С тех пор сам стал код коментировать. 5. Нужно вести историю каждого пакета - Кто создал, кто поменял, с какой целью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2003, 13:31:47 |
|
||
|
Заповеди девелопера
|
|||
|---|---|---|---|
|
#18+
Очень многие грешат при написании SQL-запросов, строя запрос с указанием конкретных значений во фразе WHERE , что не даёт возможности повторного использования готового разобранного запроса. Код: plaintext P.S. to Vladimirgs: Если ты поднял эту тему, тогда доводи её до ума и помести в FAQ Oracle. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2003, 14:21:55 |
|
||
|
Заповеди девелопера
|
|||
|---|---|---|---|
|
#18+
>!!! Значения нужно передавать в запросы через bind-переменные !!! согласен конечно же, но не стоит думать, что это универсальный постулат. Например в DSS, где время парсинга несоизмеримо меньше времени, затрачиваемого на получение результата, использование литералов может дать лучшие планы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2003, 14:52:29 |
|
||
|
Заповеди девелопера
|
|||
|---|---|---|---|
|
#18+
"Например в DSS, где время парсинга несоизмеримо меньше времени, затрачиваемого на получение результата, использование литералов может дать лучшие планы" Это можно указать, как исключение из заповедей :) Как я понимаю разговор ведь идёт о том что приходит лох и хочет писать приложения с запросами. Должен-же он знать основы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2003, 14:58:14 |
|
||
|
Заповеди девелопера
|
|||
|---|---|---|---|
|
#18+
Динамический SQL доведёт тебя до конца. Йо-хо-хо и всё такое :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2003, 15:26:00 |
|
||
|
Заповеди девелопера
|
|||
|---|---|---|---|
|
#18+
Пособие по написанию ПРАВИЛЬНОГО кода: http://mindprod.com/unmain.html Написано на базе жавы, но 98% подойдет и к скулу. ЙЙ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2003, 16:52:56 |
|
||
|
Заповеди девелопера
|
|||
|---|---|---|---|
|
#18+
Я бы еще добавил, полностью перечислять все поля в которые ложатся значения в инсертах... Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2003, 18:30:43 |
|
||
|
Заповеди девелопера
|
|||
|---|---|---|---|
|
#18+
Ну и до кучи - в селектах. Знаю одну систему, есть в том числе и оракловая версия, - так вот, там используется следующая идеология - клиентское приложение делает несколько select * from tableX, а потом делает соединение и отбор нужных данных на клиенте. Система стоит более EUR 100000. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2003, 18:34:55 |
|
||
|
Заповеди девелопера
|
|||
|---|---|---|---|
|
#18+
И тут-же вопрос "почему ?" для следующих высказываний: 3. Минимизируй использование функций во въюхах. 5. Въюха + въюха+.....+въюха = смерть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2003, 09:57:13 |
|
||
|
Заповеди девелопера
|
|||
|---|---|---|---|
|
#18+
>И тут-же вопрос "почему ?" для следующих высказываний: >5. Въюха + въюха+.....+въюха = смерть. ...это тоже что нормализация структуры данных <=> смерть! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2003, 13:17:18 |
|
||
|
Заповеди девелопера
|
|||
|---|---|---|---|
|
#18+
а где Commit писать. на клиенте или сервере объясните пожалуйсиа ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2003, 19:14:15 |
|
||
|
Заповеди девелопера
|
|||
|---|---|---|---|
|
#18+
Тема съехала....слишком мало для FAQ, неужто иссяк источник добрых знаний? Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2003, 12:56:50 |
|
||
|
Заповеди девелопера
|
|||
|---|---|---|---|
|
#18+
2acidbaba 1. Строй запрос таким образом, что-бы он сам хватал индексы, а не указывай в HINT по какому индексу идти. (Завтра какой нибудь мудило индексы попериименовывает и пойдет задупление). не согласен в КОРНЕ, 1.чаще мудилы проводять UPGRADE сервера, после чего все планы запросов идут на х.з.к. это бывает чаще чем твои индексы переименовывают. 2.нефиг мудилам давать права на изменение объектов твоей схемы)))) 3.если 2-е невозможно, убивать мудил за такие приколы)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2003, 13:31:03 |
|
||
|
Заповеди девелопера
|
|||
|---|---|---|---|
|
#18+
что стоит писать русское сообщение на навозможность заблокировать запись, да и вообще не забывать про триггер ON_LOCK. Пользователь боится английского языка и кодов ошибок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2003, 13:43:55 |
|
||
|
Заповеди девелопера
|
|||
|---|---|---|---|
|
#18+
В системе должна быть 1(одна) функция расчета НДС. желательно хранимая, а еще желательней, чтобы это был пакет, с набором функций, реализующих полный набор возможных операций по расчету или вычислению оного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2003, 14:00:27 |
|
||
|
Заповеди девелопера
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. shvs, НДС не всегда нужно считать, это слишком конкретный пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2003, 14:06:37 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=2767&tid=1990109]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
23ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 313ms |

| 0 / 0 |
