Oracle knjige

Thursday, 14.12.2006 – Dejan

Oduvijek sam volio čitati stručnu literaturu – knjige, časopise, online članke i td., a hvala Bogu, u ovoj firmi stručnih knjiga ima napretek. Najviše knjiga ima za Oracle, potom za Java programiranje, te na kraju za XML, C++, XSLT, VB.NET, Delphi, te nekoliko knjiga za Project management.

 Na mom stolu se uvijek može naći par knjiga, jer mi katkad zatreba neka stvarčica, koju ne znam detaljno ili želim da pronađem definiciju i način korištenja određenih stvari u Oracleu. Evo baš sam danas listajući knjigu “Oracle 10g: PL/SQL Programmierung” naletio na CURSOR unutar SELECTa, tj. “SELECT nesto FROM tabela, CURSOR (SELECT nesto2 FROM tabela2) cur WHERE … “, a juče sam čitao nešto o particijama u Oracle 10g bazi.

Iduce sedmice planiramo kupiti/naruciti dvije nove knjige: “Oracle database 10g: Real Application Clusters” i “Oracle database 10g: RMAN Backup & Recovery” (ne znam sad napamet nazive knjiga, ali tako nekako idu).

 Evo neke od knjiga, koje su mi na stolu ili u ormarima pored.

Oracle books Oracle books 2 Oracle books 3 Oracle poster



MetaLink i Oracle Support

Tuesday, 21.11.2006 – Dejan

Vec vise od mjesec dana se gnjavim sa ljudima iz Oracle support, da rijese jedan problem, odnosno da isprave jedan bug u svojoj 10g bazi (BUG: PARSING PERFORMANCE IS MORE POOR AS DEPTH OF INLINE VIEW IS MORE INCREASED ).

Imamo aplikaciju, koja generise SQL upite u zavisnosti, koje su opcije izabrane. Pri tome je moguce da bude generisan upit, koji sadrzi nekoliko (maksimalno 10-ak) ugnijezdjenih upita (inline query/inline view), kao npr.:
SELECT …
   FROM (
          SELECT …
              FROM (
                 SELECT …
                    FROM (
                        i td.
                             )
                      )
        )
Da ironija bude veca, stvar na 9i bazi radi, iako parsing faza traje minut-dva, a na 10g bi trebala da radi i da bude jos brza, no takav query ne prolazi ni parsing fazu. Naprosto se zablokira i mora se prisilno ubiti taj proces. Cak ni EXPLAIN PLAN FOR ne radi.

I tako se ja dopisujem vec vise od mjesec dana sa nekoliko osoba iz Oracle support tima, no bezuspjesno. Posalju mi neki Solution/action plan i ja ga odradim vec isti dan. Nakon 2-3 dana, opet mi posalju neki solution/action plan – ja ga odradim isti dan. Posaljem im trace fajlove, TKProf output i td., a oni nakon 10 dana traze opet to isto. I tako smo se poceli vrtjeti u krug. Rekose da ce bug biti ispravljen u patchu za novembar, no ni p od patcha. Od nekih internih ljudi sam saznao da postoje veliki problemi sa izdavanjem najnovijeg patcha, pa je doticni jos na razmatranju i po poslednjim informacijama, bice izdan tek pred novu godinu ili nakon nove godine. A mi da cekamo i blejimo do tada…

Edit (13.12.2006.): Evo rijesen je ovaj bug u patchsetu 10.2.0.3, ali nazalost jos nije izdan za nasu platformu. Po njihovim najavama, patchset za nasu platformu ce biti izdan krajem ovog mjeseca ili pocetkom januara. Aj’ da vidimo hoce li pomoci imalo…

Edit (10.01.2007.): Instalirao sam patchset i izgleda da sad sve radi kako treba. Odlicno! Samo jos da nisam morao ovoliko cekati…



Citat na www.mysql.com

Monday, 13.11.2006 – Dejan

U dopisivanju sa Carstenom Pedersenom, glavnim certification menadzerom, i Rolandom Boumanom, clanom certification tima, bijah zamoljen za feedback u vezi MySQL certifikata, pa sam slozio neki odgovor, ali vjerujem da ga nisam preveo na engleski kako treba, te da se izgubila smisao i kontekst, u kojem sam htio iznijeti svoje misljenje o tome.

Osim toga, nije naveden kompletan odgovor, nego su neke recenice izbacene, a pogresno su i napisali “Databaxse Consultant and DBA”.

Poslao sam im zahtjev za izmjenom, makar da to slovo x izbace, ali ni nakon nekoliko dana nema reakcije.

Citat mozete procitati ovdje: “MySQL Certification overview

Edit (20.03.2007.): Konacno su izbacili ono slovo x viska. 🙂


Koliko prostora zauzima baza, koliko je slobodno…?

Friday, 03.11.2006 – Dejan

Evo jedan SQL upit, pomocu kojeg mozete saznati neke informacije o zauzecu vasih baza, broju tabela u bazi i sl.

SELECT s.schema_name naziv_baze,
  CONCAT(
    IFNULL(
      ROUND(
       (SUM(t.data_length)+SUM(t.index_length))/1024/1024
      ,3)
     ,0.00)
   ,' MB') as ukupna_velicina_baze,
  CONCAT(
    IFNULL(
      ROUND(
        (
          (SUM(t.data_length)+SUM(t.index_length))
          - SUM(t.data_free)
        )/1024/1024
      , 3)
    , 0.00)
   ,' MB') as iskoristeno_MB,
  CONCAT(
    IFNULL(
      ROUND(SUM(data_free)/1024/1024,3)
    ,0.00)
  ,' MB') as slobodno_MB,
  CONCAT(
    IFNULL(
      ROUND(
       (
         (
          (SUM(t.data_length)+SUM(t.index_length))
           -SUM(t.data_free)
         ) /
         ((SUM(t.data_length)+SUM(t.index_length)))*100)
      ,3)
    ,0)
   ,' %') as iskoristeno_procenata,
  COUNT(table_name) as broj_tabela
FROM information_schema.schemata s
LEFT JOIN information_schema.tables t
       ON s.schema_name = t.table_schema
WHERE s.schema_name != 'information_schema'
GROUP BY s.schema_name
ORDER BY 1;



TOAD za MySQL

Friday, 27.10.2006 – Dejan

Posto inace koristim TOAD za rad sa Oracle-om, odlucio sam isprobati i TOAD za MySQL.

Na sluzbenom sajtu firme Quest mozete pronaci vise informacija o samom alatu (Toad for MySQL -> Overview), a usput i skinuti instalacijski paket (dole desno u sekciji “More info” imate link za download ili kliknite ovdje direktno za download: Download Toad for MySQL).

Prenijeću neke od karakteristika sa službenog homepagea (copy/paste):

  • SQL Modeler – Quickly create the framework for a SQL statement from a graphical interface, including selecting tables and views; selecting and joining columns, adding conditions, etc.

  • Schema Report Generator – Create HTML reports of selected databases and objects, including the source code for each object and links that display details for the object when selected.

  • Data Report Designer – Design and distribute live reports that users can run to view the latest data.

  • Advanced Administration – Schema Compare, Data Compare, Knowledge Xpert, Flush and Reset, Session Monitor, and Group Execute.

  • Master Detail Browser – View or edit data from one or more tables that contain constraints.

  • Editor Enhancements – Macro Record/Playback, Enhanced Code Snippets, Version Control, and more…

  • Service Manager – Easily add, remove, start, or stop services from Toad. 

  • Security Setup – Restrict access to specific features in Toad.
  • Tu je naravno i podrška za UTF8:  

    TOAD za MySQL - UTF8 podrška

    Isprobajte i nećete se pokajati.



  • Oracle 11g – još jedno razočarenje?

    Tuesday, 24.10.2006 – Dejan

    Na Oracle OpenWorld konferenciji u San Franciscu, najavljena je nova verzija Oracle RDBMS-a i to u verziji 11g. Navodno će imati ni manje, ni više, nego 482 nova dodatka.

    Iz iskustva znam da još mnoge firme nisu prešle ni na Oracle 10g (ako i jesu, bore se sa migracijom i Oracle bugovima – o, da! I Oracle je bugovit!), a kad će tek doći na red 11g…

    Moram priznati da me Oracle u zadnje vrijeme sve više razočarava, a navešću neke od razloga:
    1. Izdao je prerano verziju Oracle 10g, koja ne da je bugovita, nego je gora od cesta na Balkanu.
    2. Razumijem ja, da Oracle želi proširiti područje svog djelovanja i samim tim povećati zaradu, ali dajte Oracleovci prvo sredite svoj RDBMS, jer sam samo u zadnjih godinu i po dana lično svjedok nekoliko TAR-ova (po novom Service Request-ova) na račun vašeg RDBMS-a. A takvih zahtjeva je na stotine, da ne kažem hiljade… Požurujete sada i sa verzijom 11g, a ni ova 10g nije 100% stabilna i kompletna. Zar vam nije dosta love od silnih licenci?
    3. Vrijeme je da malo poboljšate PL/SQL (o objektno orjentisanom PL/SQL-u mogu samo da sanjam).

    Nije ni čudo što sa svih strana u zadnje vrijeme čujem pritužbe na račun Oracle-a.

    Ako ovako nastavite, izgubićete dignitet najboljeg RDBMS-a.

    Za svaki slučaj, paralelno koristim i MySQL, jer će možda za par godina zatrebati umjesto Oraclea … 😉


    Kreiranje uskladistene procedure (How to create MySQL stored procedure)

    Tuesday, 10.10.2006 – Dejan

    Novije verzije MySQL-a podrzavaju izmedju ostalog i uskladistene procedure (stored procedures), pa bih zelio prikazati na jednom primjeru, kako se one kreiraju i koriste.
    Pročitaj kompletan tekst »


    Ograničavanje korisničkih resursa (Limiting account resources)

    Monday, 09.10.2006 – Dejan

    Ukoliko dobijete grešku sličnu ovoj:
    User ‘dejan’ has exceeded the ‘max_questions’ resource (current value: 1000)

    znajte da imate aktivirano ograničenje MAX_QUERIES_PER_HOUR . To ograničenje vam ne dozvoljava izvršavanje SELECT upita nad tabelama, ukoliko u intervalu od jednog sata prekoračite maksimalno dozvoljeni broj upita. U ovom slučaju maksimalni broj upita u jednom satu iznosi 1000.

    To je dio resursnih ograničenja, tzv. “limiting account resources“, koje se može definisati za svakog korisnika pojedinačno i postoji tek od verzije 4.0.2. Primjer takvih ograničenja izgleda ovako:

    mysql> GRANT ALL ON dejan.* TO 'dejan'@'localhost'
        ->     IDENTIFIED BY 'd3j4np455'
        ->     WITH MAX_QUERIES_PER_HOUR 1000
        ->          MAX_UPDATES_PER_HOUR 50
        ->          MAX_CONNECTIONS_PER_HOUR 50
        ->          MAX_USER_CONNECTIONS 2;
           

    To znači:
    – da mogu izvršiti 1000 SELECT upita u sat vremena (MAX_QUERIES_PER_HOUR)
    – da mogu izvršiti 50 izmjena (INSERT, DELETE, UPDATE) u bazi tokom sat vremena (MAX_UPDATES_PER_HOUR)
    – da se mogu najviše 50 puta spojiti na bazu u sat vremena (MAX_CONNECTIONS_PER_HOUR)
    – da maksimalni broj mojih simultanih konekcija iznosi 2 (MAX_USER_CONNECTIONS)

    Vrijednosti tih ograničenja se nalaze u mysql.user tabeli, i to u slijedećim poljima/kolonama:
      Ograničenje                                Schema.Tabela.Kolona
    ———————————————————————–
    MAX_QUERIES_PER_HOUR     > mysql.user.max_questions
    MAX_UPDATES_PER_HOUR     > mysql.user.max_updates
    MAX_CONNECTIONS_PER_HOUR > mysql.user.max_connections
    MAX_USER_CONNECTIONS     > mysql.user.max_user_connections

    Više informacija o ovome možete pronaći na službenom MySQL homepageu: Limiting Account Resources


    Intervju: Siniša Milivojević, MySQL AB

    Wednesday, 04.10.2006 – Dejan

    Za one koji ne znaju, Siniša Milivojević je MySQL Senior Support Manager i Developer. Obratio sam mu se sa željom da napravimo jedan E-Mail intervju prvenstveno o MySQL-u i OpenSource-u, na što je on rado pristao. Intervju je obavljen 05.06.2004., tako da neke informacije o MySQL-u i nisu baš aktuelne, ali vrijedi pročitati.

    Pročitaj kompletan tekst »


    TOAD vs. PL/SQL Developer

    Wednesday, 04.10.2006 – Dejan

    Od 10 Oracle programera u mojoj firmi, njih 8 koristi PL/SQL Developer, jedan koristi naizmjenično PL/SQL Developer i TOAD, a jedino ja koristim isključivo TOAD (više od 95% vremena).

    Već od prvog radnog dana koristim TOAD za Oracle pri “quickie” administraciji i PL/SQL programiranju, tako da moram priznati kako sam se navikao na njega. Pokušao sam raditi i sa PL/SQL Developerom, ali se jednostavno nisam mogao naviknuti.

    TOAD mi nudi više opcija za administraciju, navigacija mi super odgovara, ima pregledniji EXPLAIN PLAN panel, mogu imati više otvorenih konekcija u jednoj instanci TOAD-a, upiti se ne izvršavaju u odvojenim session-ima kao po defaultu kod PL/SQL Developera, ima odličan Session browser, Object navigator i td. A i ljepši je. 😉

    Doduše zna mi se često desiti da se TOAD skrši sam od sebe ili da mi izbacuje neki “access violation error”, pa onda popi**im ko leptir, ali mi se i PL/SQL Developer znao “smrznuti” par puta, pogotovo kada kompajliram neki PL/SQL package sa više od 10 000 linija kôda.

    Trenutno koristim TOAD sa verzijom 8.6.1, a nadam se da će verzija 9 biti stabilnija od prethodnih.