|
Тема |
Re: Разлика между Firebird 2.0 и InterBase 2007 [re: Mixy] |
|
Автор |
NickBass (бас-програмист) |
|
Публикувано | 22.10.07 12:12 |
|
|
Hi Mix! Съгласен съм с теб за перформънса на по-скъпите бази, но на 50%. Ще споделя едно съвсем частно мнение, което е изградено на базата на това, което аз съм видял. Имам впечатлението, че повечето програмисти някак пренебрегват знанията относно това как се изгражда БД за best performance. Повече внимание се отделя на клиентското приложение, което комуникира с базата. Правило ми е впечатление как бизнес логиката е неясно разхвърляна къде в БД - къде в клиента. Според мен да правиш БД си е точно толкова отговорна задача, колкото и клиент за нея. Нещата, които съм виждал показват, че на базите данни сякаш се гледа като на един контейнер в който просто се наливат едни данни колкото да ги има, а после като трябва да се вадят сложни справки, перформънса загива заради изчанчени заявки. Та мисълта ми е, че ако една база се структурира правилно и на нея се гледа наистина като на ДБ СЪРВЪР, тогава може и да спестим някой друг процесор за сървърната машина.
P.S.
Един тривиален пример: два варианта на заявка. Разликата в перформънса е в пъти, а аз често съм я срещал във вариант 1. Е после базата била слаба...
SELECT
c.customer_name, Sum(d.doc_total) as doc_total
FROM
customers c
LEFT JOIN
documents d ON (d.customer_id = c.customer_id)
WHERE
d.doc_type = 1
GROUP BY
c.customer_name
SELECT
c.customer_name, Sum(d.doc_total) as doc_total
FROM
customers c
LEFT JOIN
documents d ON (d.customer_id = c.customer_id) AND (d.doc_type = 1)
GROUP BY
c.customer_name
|
| |
|
|
|