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?

Advertisements
Tänane irooniaannus

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…

Viktor ei ela siin

Global Personality Test

Advanced Global Personality Test Results

Extraversion |||||||||||| 46%
Stability |||||||||||||||| 66%
Orderliness |||||||||||| 46%
Accommodation |||||||||||| 42%
Interdependence |||||||||||||||| 70%
Intellectual |||||||||||||||| 70%
Mystical |||| 16%
Artistic |||||||||||||| 56%
Religious || 10%
Hedonism |||||||||||| 43%
Materialism |||||||||||| 50%
Narcissism |||||||||||| 43%
Adventurousness |||||||||||||||| 63%
Work ethic |||||||||||||||| 70%
Humanitarian |||||||||||| 43%
Conflict seeking |||||||||||| 43%
Need to dominate |||||||||||| 43%
Romantic |||||||||||||||| 63%
Avoidant |||||||||||||| 56%
Anti-authority |||||||||||||| 56%
Wealth |||||||||||| 43%
Dependency |||||||||||| 50%
Change averse |||||||||||| 43%
Cautiousness |||||||||||||||||| 76%
Individuality |||||||||||| 43%
Sexuality |||||||||||||||||| 76%
Peter pan complex |||||| 30%
Family drive |||||||||||| 43%
Physical Fitness |||||||||||||| %
Histrionic |||||||||||||| 56%
Paranoia |||||||||||| 43%
Vanity |||||||||||||||| 63%
Honor |||||||||| 36%
Thriftiness |||||||||||| 50%

Take Free Advanced Global Personality Test
personality test by similarminds.com

Global Personality Test

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
Kuidas indeksid teevad baasi aeglaseks

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.

Kes mille pärast blogimise lõpetab

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…

Igavusest sündinud