Article View: pl.comp.bazy-danych
Article #195692Re: PostgreSQL - trigger pomija instrukcje
From: Adam M
Date: Thu, 07 Nov 2019 20:19
Date: Thu, 07 Nov 2019 20:19
42 lines
4583 bytes
4583 bytes
On Thursday, November 7, 2019 at 2:06:10 PM UTC-5, Marek S wrote: > W dniu 2019-11-06 o 21:54, Adam M pisze: > > > > > Wkładanie logiki biznesowej na triggery to bardzo niebezpieczna zabawa - takie rozwiązania stosowało się epoce SQLa łupanego ;-) - prosciej i bezpieczniej przenieść logikę na middleware. > > > Tak, wiem, że niebezpieczna. Dlatego 15x to testuję zanim udostępnię. > > Owszem, obecnie zwykle przenosi się logikę tego typu do ORMów, a nawet > widziałem raz sortowanie wykonane w PHP (!!!) w imię przenoszenia > wszystkiego, co możliwe do wykonania na bazie poza nią. Zauważam, że > zapanowała wielka awersja do używania baz danych. Zdarza się nawet, że > obiekty danych trzyma się w formie plików na dysku (patrz Pimcore). Ja > jednak będę trzymał się w/w rozwiązań. Właśnie jestem świadkiem początku > upadku sporego przedsięwzięcia - przed czym, u zarania projektu, > przestrzegałem team. Oni ślepo ufają nowoczesnym rozwiązaniom, jakie > proponujesz. W efekcie, przy ok 25 mln rekordów w bazie, niektóre proste > operacje potrafią trwać po kilka minut (klient tyle musi czekać na > response interfejsu) zamiast kilkadziesiąt milisekund. Przenoszenie > projektu na super wydajne serwery (hosting parę tys. $), stosowanie > loadbalacera - odsunęło problem w czasie. Osobiście wygodny ORM stosuję > tylko tam, gdzie nie może zaszkodzić bardzo: chyba tylko obsługa > formularzy. Zaczynam przenosić rozwiązania nowoczesne, na łupany SQL i > już w tej chwili zyskuję min. trzy rzędy wielkości krótsze czasy > realizowanych operacji. > > Jednakże mimo wszystko nie zgodzę się z Tobą, że stosowanie procedur > składowych w bazie to przestarzałe podejście. Wręcz przeciwnie: widuję w > korporacjach działy administratorów baz danych, którym wręcz zleca się > realizowanie procedur składowych, z których korzystają programiści. > Programiści nie muszą być świadomi nawet tego, że jakąś kolumnę > przeniesiono z jednej tabeli do innej. > > -- > Pozdrawiam, > Marek Może trochę zaprzeczę własnemu stwierdzeniu alz zgodzę się z kolegą jeżeli takie rozwiązanie jest stosowane na bazie Oracle , Sybase ASE lub nawet Microsoft SQL gdzie debugowanie kodu SQL po strownie serwera jest łatwe i przyjemne - można wtedy traktować server SQL jak middleware. Niestety PostgrSQL ma fatalny debugger - ostatni jaki używałem był na 9.3 i padał jeśli tylko sie na niego człowiek źle popatrzył nie mówiąc o jakim kolwiek sensownym debugowaniu. Może coś poprawili na 10 - nie wiem tego bo poprostu sobie odpuściłem debugowanie na PostgreSQL is jeśli muszę coś pisac to omijam logikę na triggerach jak zarazę - procedury składowane tak (pomimo ze i tak śą skopane na PostgreSQL - nie mozna mieć transakcji częściowych w środku procedury/funkcji) - logika na triggerach nie - przynajmniej na PostgreSQL. Pozdrawiam Adam M
Technical Details
Message-ID:
<923d8fe3-931e-4c10-b546-43571e6f3ace@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!feeder.erje.net!2.eu.feeder.erje.net!newsfeed.xs4all.nl!newsfeed8.news.xs4all.nl!185.102.218.108.MISMATCH!tr2.eu1.usenetexpress.com!feeder.usenetexpress.com!tr3.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!j16no10077817qtl.0!news-out.google.com!p4ni533qtu.1!nntp.google.com!j16no10077806qtl.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<qpnjmv$f6a$1@news.icm.edu.pl> <5dc16116$0$543$65785112@news.neostrada.pl> <qpv5oa$57n$1@news.icm.edu.pl> <0363bcb0-290b-42b1-abe1-8cd8a86387ac@googlegroups.com> <qq1pv0$5et$1@news.icm.edu.pl>Show Full Headers
Complete Article Headers
X-Received: by 2002:ac8:754c:: with SMTP id b12mr3234765qtr.291.1573157968538; Thu, 07 Nov 2019 12:19:28 -0800 (PST) X-Received: by 2002:a05:6830:1149:: with SMTP id x9mr4394070otq.47.1573157968038; Thu, 07 Nov 2019 12:19:28 -0800 (PST) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!feeder.erje.net!2.eu.feeder.erje.net!newsfeed.xs4all.nl!newsfeed8.news.xs4all.nl!185.102.218.108.MISMATCH!tr2.eu1.usenetexpress.com!feeder.usenetexpress.com!tr3.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!j16no10077817qtl.0!news-out.google.com!p4ni533qtu.1!nntp.google.com!j16no10077806qtl.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.bazy-danych Date: Thu, 7 Nov 2019 12:19:27 -0800 (PST) In-Reply-To: <qq1pv0$5et$1@news.icm.edu.pl> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=70.89.204.241; posting-account=aFGPVQoAAADngh59qlchYygiuB87zBBU NNTP-Posting-Host: 70.89.204.241 References: <qpnjmv$f6a$1@news.icm.edu.pl> <5dc16116$0$543$65785112@news.neostrada.pl> <qpv5oa$57n$1@news.icm.edu.pl> <0363bcb0-290b-42b1-abe1-8cd8a86387ac@googlegroups.com> <qq1pv0$5et$1@news.icm.edu.pl> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <923d8fe3-931e-4c10-b546-43571e6f3ace@googlegroups.com> Subject: Re: PostgreSQL - trigger pomija instrukcje From: Adam M <amorawski@magna-power.com> Injection-Date: Thu, 07 Nov 2019 20:19:28 +0000 Lines: 79 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit