Na stronie ORACLE został opublikowany artykuł o połczeniu bazy ORACLE (do przykładu została użyta baza Oracle Database 10g XE) z Ruby on Rails. Artykuł zawiera instalację pod systemem Linux i Windows i sposób użycia.
Na liście znalazły się takie pakiety jak:
- actionmailer - E-mail support
- actionpack - Controller and View Framework
- actionwebservice - Web Service Support
- activerecord - Object Relational Mapping Layer
- activesupport - Utility Classes Used by Rails
- Rails - Ruby-based MVC Web Application Framework
- Rake - Ruby Build Program
Źródło dokumentu: http://www.oracle.com/technology/pub/articles/saternos-ror-faq.html
Na forum php.pl pojawił się post z pytaniem czy zastosowanie prepared statements wpływa na wydajność zapytań.
Troszeczkę teorii:
Jak to wygląda od strony ORACLE:
Zanim dane zostaną zwrócone z bazy danych, po odebraniu odpowiedniego kodu baza danych Oracle musi wykonać określone czynności:
- przygotowanie zapytania
- podwiązanie zmiennych
- wykonanie zapytania
- zwrócenie rekordów do użytkownika
Jeśli do bazy danych jest wysyłane takie samo zapytanie proces parowania nie jest wykonywany, przez co wydajność wzrasta bo pewna czść operacji jest pomijana.
Czy zawsze stosować takie rozwiązanie?
Są przypadki zapytań dla których najlepszy plan pierwszego wykonania dla pewnych parametrów jest nieoptymalny i zaleca się nie stosowanie zmiennych wiązanych.
MySQL:
Jeśli chodzi o bazę danych MySQL mechanizmy nie są aż tak bardzo zaawansowane ale pewne rzeczy są zaimplementowane.
Więcej na stronie: http://dev.mysql.com/tech-resources/articles/4.1/prepared-statements.html
Jak PDO wpływa na wydajność
PDO udostępnia funkcje do tzw bind’a (w literaturze polskiej spotkałem się z określeniem zmienna wiązana), w którym możemy przekazać wartość jaka ma być podstawiona pod zmienną, która w późniejszym etapie zostanie wysłana do bazy. Możemy wysłać zapytanie tylko jeden raz, następnie podstawiać wielokrotnie a następnie wykonywać. Dodatkowo PDO chroni przed atakami SQL Injection.
Post z forum.php.pl: http://forum.php.pl/mysqli-prepared-statements-t54025.html
Używając PostgreSQL’a możemy wykorzystywać kilka języków proceduralnych:
- PL/pgSQL podobny składnią do języka PL/SQL w bazie Oracle
- języki skryptowe: PL/Perl, plPHP, PL/Python, PL/Ruby, PL/sh i PL/Tcl
- kompilowane: C, C++, PL/Java
- PL/R
PostgreSQL jest często wykorzystywany przez programistów serwisów WWW (konfiguracja w postaci PostgreSQL + PHP) to mimo tego, że istnieje język plPHP to obecnie najpopularniejszym językiem jest PL/pgSQL - dlatego pewnie, że wywodzi się od PL/SQL (Oracle).
Zastanawiam się dlaczego tak się dzieje, co powoduje że nie używa się pozostałych języków? Weźmy na przykład Ruby - oczywiście w bazie PostgreSQL mamy możliwość jego wykorzystania. PL/Ruby jest rozwijany od 2002 roku, mimo wielkiej popularności Ruby wśród programistów PHP język raczej nie należy do tych prężnie się rozwijających. C, C++ dlaczego nie? Prawie każdy programista miał styczność z tymi językami a jednak PL/pgSQL.
Przeglądając TODO Postgresa i MySQLa widać, że developerzy tych baz starają się implementować większość funkcjonalności, które firma Oracle wprowadziła do swojej bazy jakiś czas temu. Tak czy inaczej Oracle jest pionierem na rynku jeśli chodzi o bazy danych i wprowadzenie zmian lub dodanie nowych mechanizmów powoduje, że reszta systemów bazodanowych podąża za nimi.
Czy warto wdrożyć plPHP czy PL/Ruby? Każdy musi na to pytanie sobie sam odpowiedzieć.
Dla osób chcących wdrożyć się w PL/Ruby lub plPHP zapraszam na:
PL/Ruby
plPHP
Jak na każdym blogu musi być ten pierwszy post. Mam nadzieję że z biegiem czasu postów jak i komentarzy będzie przybywać.
O czym będę pisał, hmmmmm począwszy od SQLa a skończywszy na PHP. Zagadnienia związane z MySQL coś z nowości, PostgreSQL, Oracle. Mam nadzieję że moje chęci nie skończą się na pierwszym poście.