Archive for Mai 2008
Tänane irooniaannus
Ühte Oracle foorumisse tekkis täna postitus, mis algas nii:
hi gays.
Täitsa huvitav, kes sellele vastab ja kas vastusest võiks ka mingeid… järeldusi teha?
Viktor ei ela siin
Inimesed blogivad kui segased. Märkisin riideris aktiivsemad feedid loetuks, ja lugemata juttude arv kahanes hoobilt seitsmekümneni. Ja kõike seda on nad jõudnud kokku kirjutada ühe õhtu ja öö jooksul.
***
Tundub, et külmetasin eile õllega kurgu ära. Valutab raibe, ja neelata on valus. Aga muidu oli tore. Esimest korda selle sajandi jooksul sattusin loomaaeda ja nägin elus Mati Kaalu.
***
Keegi on siia blogisse sattunud otsingustringi ‘Viktor Kingissepp’ kaudu. Vaata või isegi, mida selle stringi abil siit leida oleks…
Global Personality Test
|
Advanced Global Personality Test Results
|
Take Free Advanced Global Personality Test
personality test by similarminds.com
Kuidas indeksid teevad baasi aeglaseks
Aeg-ajalt ujub pinnale rahvatarkus, mille kohaselt teevad indeksid andmete lisamise, muutmise ja kustutamise aeglaseks. Tõepoolest, DMLi tegemisel tuleb uuendada indekseid, millele läheb täiendav aeg. Et tõe kriteerium on praktika, siis uurime järgnevalt, kuidas asjad tegelikult on.
SQL> create table t2 as with gen as (select 2 rownum as id, owner,object_name as name,object_id as oid from all_objects where rownum SQL> exec dbms_stats.gather_table_stats(user, 'T2'); PL/SQL procedure successfully completed. SQL> alter session set events '10046 trace name context forever, level 12' Session altered.
Nüüd teeme mõned päringud. Kleepisin lühiduse mõttes päringute alla ka asjaomased lõigud tkprof’i väljundist.
Esmalt väike insert, lühiduse mõttes ei hakka päringuplaani ära tooma
SQL> insert into t2 select rownum as id, owner,object_name as name,object_id as oid from all_objects where rownum < 1000; call count cpu elapsed disk query current rows ------- ------ -------- ---------- ---------- ---------- ---------- ---------- Parse 1 0.04 0.10 4 10 0 0 Execute 1 0.09 0.08 0 3904 59 999 Fetch 0 0.00 0.00 0 0 0 0 ------- ------ -------- ---------- ---------- ---------- ---------- ---------- total 2 0.14 0.19 4 3914 59 999
Ning sinna otsa DELETE ja UPDATE:
SQL> delete from t2 where id = 123;
1000 rows deleted.
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.10 0.20 749 4409 1045 1000
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.10 0.21 749 4409 1045 1000
Rows Row Source Operation
------- ---------------------------------------------------
0 DELETE T2 (cr=4409 pr=749 pw=749 time=0 us)
1000 TABLE ACCESS FULL T2 (cr=4409 pr=749 pw=749 time=20 us cost=1236 size=3996 card=999)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file scattered read 12 0.01 0.11
SQL*Net message to client 1 0.00 0.00
SQL*Net message from client 1 0.00 0.00
********************************************************************************
SQL> update t2 set id=666,owner='DIAB' where id = 555;
1000 rows updated.
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.21 0.97 2976 11846 2836 1000
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.21 0.98 2976 11846 2836 1000
Rows Row Source Operation
------- ---------------------------------------------------
0 UPDATE T2 (cr=9542 pr=2742 pw=2742 time=0 us)
2192 TABLE ACCESS FULL T2 (cr=11855 pr=2980 pw=2980 time=76 us cost=1236 size=8991 card=999)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file scattered read 52 0.06 0.59
SQL*Net message to client 1 0.00 0.00
SQL*Net message from client 1 0.00 0.00
********************************************************************************
Nüüd teeme ühe indeksi ja laseme uuesti käima samalaadsed päringud:
SQL> create index t2_idx_id on t2(id);
Index created.
SQL>
SQL> exec dbms_stats.gather_index_stats(user, 'T2_IDX_ID');
PL/SQL procedure successfully completed.
SQL> insert into t2 select rownum as id, owner,object_name as name,object_id as oid from all_objects where rownum < 1000;
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.06 0.10 4 9 0 0
Execute 1 0.10 0.18 4 3901 3057 999
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.17 0.29 8 3910 3057 999
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 4 0.02 0.05
SQL*Net message to client 1 0.00 0.00
SQL*Net message from client 1 0.00 0.00
********************************************************************************
SQL> delete from t2 where id = 223;
1001 rows deleted.
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.04 0 6 1082 1001
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.00 0.04 0 6 1082 1001
Rows Row Source Operation
------- ---------------------------------------------------
0 DELETE T2 (cr=6 pr=0 pw=0 time=0 us)
1001 INDEX RANGE SCAN T2_IDX_ID (cr=6 pr=0 pw=0 time=18 us cost=5 size=3996 card=999)(object id 70739)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 1 0.00 0.00
SQL*Net message from client 1 0.00 0.00
********************************************************************************
SQL> update t2 set id=666,owner='DIAB' where id = 444;
1001 rows updated.
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.01 0.07 0 31 1220 1001
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.01 0.08 0 31 1220 1001
Rows Row Source Operation
------- ---------------------------------------------------
0 UPDATE T2 (cr=31 pr=0 pw=0 time=0 us)
1001 INDEX RANGE SCAN T2_IDX_ID (cr=6 pr=0 pw=0 time=16 us cost=5 size=8991 card=999)(object id 70739)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 1 0.00 0.00
SQL*Net message from client 1 0.00 0.00
********************************************************************************
Nagu ülalpool olevalt pildilt näha, läks peale indeksi tegemist INSERT 18% aeglasemaks, samas kui DELETE läks rohkem kui 5x ja UPDATE rohkem kui 12x kiiremaks.
Tegelikult tuleks üle kontrollida ka see, kui palju redo logi ühel või teisel juhul genereeriti, aga jäägu see teiseks korraks
PS.
SQL> select banner from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
EBMi lainel
Kõigepealt Front 242 Nende lugu Crushed sobiks tänasesse päeva ideaalselt, aga seda paraku jutjuubis ei olnud. Küll aga olid seal Headhunter:
Tragedy for You:
Quite Unusual:
ja Religion:
Teine mu viimase aja lemmik on Assemblage 23. Kõigepealt “tänase päeva lugu,” ehk Divide:
ja Dissapoint:
Kes mille pärast blogimise lõpetab
Endine alluv rääkis kunagi sellise loo.
Saatnud endine tööandja tema seitsme maa ja mere taha pärismaalastele infotehnoloogilisi imevigureid paigaldama. Et internetti seal eriti ei olnud ja telefoniga rääkimine kallis ja et kõik sõbrad-tuttavad kippusivad pärima, et mida ta seal teeb, siis otsustanud ta oma blogi teha. Et kirjutab oma kurva saatuse üles, siis ei pea igaühele hakkama eraldi üle seletama. Mõeldud-tehtud.
Blogimise indu jätkus niikauaks, kuni üks ta sõber töökohta vahetas ja leidis uue tööandja intraneti naljanurgast lingi sellele blogile. Pettumus oli nii suur, et rohkem pole ta oma blogisse midagi üles tähendanud.
Selline lugu siis. Miks ma seda räägin? Sest see mo endine alluv helistas mulle eile, kui ma Mercados juurviljawokki ja veiseliharulli näost alla ajasin. Et ta teinud Tuxedole retardi ja nüüd ei tule see üles. Eksole.
Link ise kah: http://insallah.blogspot.com/
***
Aga ei, tänaseks peab vist otsad kokku tõmbama. Nimelt helistas ennist Issandjumal ja teatas faktist, et on kilulinnas. Hääle järgi otsustades tahab ta võtta õhtul mõned ölled. Ega’s midagi peab vist tõesti minema vaatama, kuidas tal januga lood on…
Side lõpp.
Igavusest sündinud
Mida teha, kui bussis on hirmus kitsas, raputab ja otse taga istub hõrku raipehaisu levitav härra? Õige, tuleb häkkida Oracle viimast versiooni. Panin suurest igavusest kokku Oracle 11g trace eventite nimekirja. Nimelt jõudsin üsna juhuslikult veebis surfates infobitini, et need on kirjeldet Oracle erreuride failis ($ORACLE_HOME/rdbms/mesg/oraus.msg ja/või $ORACLE_HOME/rdbms/mesg/oraus.msb). Et mul on läpparis Vista, siis tahtis nende teadete kättesaamine veidi PL/SQLis progemist… Ei läinudki kaua, Ristilt Virtsuni, ja oligi korras.
Igatahes, see nimekiri tundub paljulubav
Eventitest 10046 ja 10053 on juttu olnud küll, samas transaktsioonides, eriti XA’s on sorgitud oluliselt vähem…
Paanikaosakond: lugemissoovitus
Siin-seal (õigemini siin ja eriti siin) ilmunud maailmalõpu meeleolud ja hävingukuulutused tõid meelde Aleksandr Gromovi raamatu “Мягкая посадка“. Suurepärane ja äärmiselt masendav raamat, depressiooni all kannatajatele kohustuslik
Web 2.0 käsurea vastu
Et siis vi jaavaskriptis: http://gpl.internetconnection.net/vi/
Dear Lord…

