Волков не бояться! Бизнес логика и РСУБД

Post on 26-Jun-2015

251 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Доклад Сергея Мелехина на второй владивостокской конференции разработчиков VLDC2. Посвящён вопросу реализации бизнес-логики приложений с использованием хранимых процедур современных РСУБД.

TRANSCRIPT

Волков - не бояться!О пользе хранимых процедур

Привет!

Не все РСУБД одинаково полезны

Не так страшен волк

Роль БД в архитектуре ИС

СУБД

Программа

СУБД

Программа

ХП0 1

SQL SQL

SQLSQLSQL

Минусы подхода

Размазывание бизнес-логики

Скудность языка СУБДclimov ax, csmov ds, axmov ss, axmov sp, 7c00hsti mov ax,0b800hmov es,ax mov di,200mov ah,2mov bx,MessStr

msg_print:mov al,[cs:bx]mov [es:di],axinc bxadd di,2cmp bx,MessEndjnz msg_print loo:jmp loo MessStr equ $Message db 'Hello, World!'MessEnd equ $

Непереносимость ХП

Специалист по СУБД - редкий зверь

Ништяки

Скорость

Сокрытие структуры данных

Гибкое управление правами доступа

Меньшая вероятность SQL injection

Повторное использование SQL

Простая отладка SQL

Проверка при компиляции

Профилирование

ТрассировкаSELECT * FROM emp, dept WHERE emp.deptno = dept.deptno;

call count cpu elapsed disk query current rows---- ------- ------- --------- -------- -------- ------- ------Parse 1 0.16 0.29 3 13 0 0Execute 1 0.00 0.00 0 0 0 0Fetch 1 0.03 0.26 2 2 4 14 Misses in library cache during parse: 1 Parsing user id: (8) SCOTT

Rows Execution Plan------- --------------------------------------------------- 14 MERGE JOIN 4 SORT JOIN 4 TABLE ACCESS (FULL) OF 'DEPT'14 SORT JOIN14 TABLE ACCESS (FULL) OF 'EMP'

Контроль зависимостей

● Важна скорость обработки данных

Когда писать бизнес-логику в БД?

● Важна целостность и непротиворечивость

Когда писать бизнес-логику в БД?

● Данные имеют сложную структуру

Когда писать бизнес-логику в БД?

Когда выносить код наружу?

● Работа с внешними данными

Когда выносить код наружу?

● Сложные алгоритмы

Когда выносить код наружу?

● Highload

?

top related