| Tartalomjegyzék | |
| Előszó | |
| Köszönetnyilvánítás | |
| Facilis Descensus Averni | |
| A téma jelentős | 2 |
| "A Nyolcak" | 3 |
| Telepítési beállítások | 5 |
| A teszteredményekről | 7 |
| Hordozhatóság | 8 |
| Szóhasználat és alapfeltételek | 8 |
| Jelölések | 9 |
| Általános megjegyzések | 10 |
| Egyszerű keresések | |
| Általános finomhangolás | 12 |
| A kódok rangsorolása | 12 |
| Állandó-behelyettesítés | 14 |
| A felesleges kód kiszűrése | 16 |
| A megfelelő DBMS használatának kikényszerítése | 18 |
| Az állandók egyszerűsítése | 18 |
| Kis- és nagybetűket meg nem különböztető keresések | 19 |
| "SARGabilitás" - keresési változók | 20 |
| Összegzés: általános finomhangolás | 22 |
| Hangolás adott műveletekkel | 22 |
| Az AND művelet | 22 |
| Az OR művelet | 23 |
| AND plusz OR | 24 |
| A NOT művelet | 25 |
| Az IN művelet | 26 |
| A LIKE művelet | 27 |
| A SIMILAR művelet | 29 |
| A UNION művelet | 30 |
| Az EXCEPT művelet | 32 |
| Az INTERSECT művelet | 32 |
| A CASE művelet | 32 |
| Összegzés: hangolás adott műveletekkel | 33 |
| A stílusról | 33 |
| Záró gondolatok | 35 |
| Az ORDER BY záradék | |
| Általános rendelkezési megfontolások | 37 |
| A részleges egyezés lassítja a rendezést | 41 |
| Az előzetes rendezettség gyorsítja a rendezést | 41 |
| A megadott hossz számít | 42 |
| Az INTEGER jobb, mint a SMALLINT | 42 |
| Az INTEGER jogg, mint a CHAR | 43 |
| A halmaz jobb, mint a többszörös halmaz | 43 |
| Végeredmény | 43 |
| Az ORDER BY záradék | 44 |
| Rendezni vagy nem rendezni? | 48 |
| Összegzés: általános rendezés | 48 |
| Karakterek rendezése | 49 |
| A karakterek rendezésének támogatása | 53 |
| Jelsorrendek | 55 |
| Összegzés: karakterek rendezése | 59 |
| Egyéb lehetőségek | 59 |
| Rendezési kulcsok | 59 |
| Támogató index használata | 61 |
| Előrendezés | 63 |
| Összegzés: egyéb lehetőségek | 63 |
| Záró gondolatok | 64 |
| A GROUP BY záradék | |
| Emlékeztető | 65 |
| A leghatékonyabb GROUP BY záradékok | 68 |
| A HAVING záradék | 70 |
| A GROUP BY alternatívái | 70 |
| Összegzés: a leghatékonyabb GROUP BY záradékok | 70 |
| Rendezés | 71 |
| Indexek | 72 |
| Összegzés: rendezés | 74 |
| Halmazfüggvények és összegszámítások | 75 |
| A COUNT függvény | 75 |
| Baj van a SUM függvénnyel | 76 |
| Több összegzési szint | 78 |
| Kifejezések | 79 |
| Összegzés: halmazfüggvények | 80 |
| Záró gondolatok | 81 |
| Táblák összekapcsolása | |
| Összekapcsolási tervek | 84 |
| Beágyazott ciklus kapcsolatok | 85 |
| Összegzés: beágyazott ciklus kapcsolatok | 91 |
| Rendező-összefűző kapcsolatok | 92 |
| Összegzés: a rendező-összefűző kapcsolat módszere | 93 |
| Kivonatoló kapcsolatok | 94 |
| Összegzés: a kivonatoló kapcsolatok | 94 |
| Kerüljük el a táblakapcsolatokat | 95 |
| Kapcsolóindexek | 95 |
| Vegyes táblák | 97 |
| Összegzés: a táblakapcsolatok elkerülése | 98 |
| Három és többtagú kapcsolatok | 99 |
| A régi és az ANSI stílusú kapcsolatok | 101 |
| Külső kapcsolatok | 102 |
| Záró gondolatok | 105 |
| Belső lekérdezések | |
| Emlékeztető | 107 |
| Táblakapcsolat vagy belső lekérdezés? | 109 |
| Kisimítás | 112 |
| Összegzés: táblakapcsolat vagy belső lekérdezés? | 114 |
| A lehetséges parancsformák | 114 |
| Az IN függvény | 115 |
| A DISTINCT záradék | 116 |
| Az EXISTS függvény | 116 |
| IN vagy EXISTS? | 118 |
| Kettős IN függvény | 118 |
| A TOP záradék | 120 |
| A > ALL feltétel | 121 |
| Halmazműveletek | 121 |
| Összegzés: választási lehetőségek a parancsformával kapcsolatban | 122 |
| Záró gondolatok | 124 |
| Oszlopok | |
| Mennyire fontos a méret? | 126 |
| Állandó vagy változó méret? | 127 |
| Összegzés: a méret kérdése | 130 |
| Karakterek | 131 |
| A hosszúság meghatározása | 134 |
| Különböző karakterkészletek | 135 |
| Összegzés: karakterek | 136 |
| Időadatok | 136 |
| Összegzés: időadatok | 140 |
| Számok | 140 |
| Egész számok | 140 |
| Lebegőpontos számok | 143 |
| Fixpontos számok | 147 |
| Számlálók | 151 |
| Összegzés: számok | 152 |
| Bitjellegű adatok | 153 |
| Összegzés: bitjellegű adatok | 155 |
| Nagy objektumok | 155 |
| Összegzés: nagy objektumok | 159 |
| NULL értékek | 160 |
| Összegzés: NULL értékek | 161 |
| A sorokon belüli oszlopsorrend | 162 |
| Összegzés: oszlopsorrend | 163 |
| Záró gondolatok | 164 |
| Táblák | |
| A tárolási rendszer | 166 |
| Lapok | 166 |
| Lapcsoportok | 170 |
| Fájlok | 172 |
| Partíciók | 173 |
| Táblahelyek | 176 |
| Összegzés: a tárolási rendszer | 177 |
| Kupacok | 178 |
| A ROWID | 178 |
| Költöztetés | 180 |
| Töredezettség | 181 |
| Szabad hely a lapokon | 183 |
| Összegzés: kupacok | 184 |
| Fürtök | 185 |
| Összegzés: fürtök | 186 |
| Normálformák | 186 |
| A normalizálási szabályok megszegése | 192 |
| Összegzés: normalizálás | 196 |
| Nézettáblák | 197 |
| Összegzés: nézettáblák | 200 |
| Záró gondolatok | 200 |
| Indexek | |
| Emlékeztető | 202 |
| A B-fák | 203 |
| Keresés a B-fában | 207 |
| Adatbeszúrás a B-fába | 209 |
| Törlés a B-fából | 212 |
| A töredezettség | 213 |
| A B-fa helyreállítása | 214 |
| Összegzés: B-fák | 216 |
| Az indexek típusai | 217 |
| Összetett indexek | 217 |
| Fedő indexek | 220 |
| Egyedi indexek | 222 |
| Fürtözött indexek | 224 |
| Összegzés: indextípusok | 232 |
| Bittérkép-indexek | 234 |
| Összegzés: bittérkép indexek | 236 |
| Egyéb indexelési lehetőségek | 237 |
| Indexkulcs-értékek | 238 |
| Összegzés: indexkulcs-értékek | 241 |
| Záró gondolatok | 241 |
| Megszorítások | |
| A NOT NULL megszorítás | 243 |
| NULL-jelzők | 247 |
| Összegzés: NOT NULL megszorítások | 248 |
| A CHECK megszorítás | 248 |
| Összegzés: CHECK megszorítások | 250 |
| Az idegen kulcs megszorítások | 250 |
| Összegzés: FOREGIN KEY megszorítások | 253 |
| A PRIMARY KEY megszorítás | 253 |
| Összegzés: PRIMARY KEY megszorítások | 257 |
| A UNIQUE megszorítás | 257 |
| Összegzés: UNIQUE megszorítások | 258 |
| A kioldók | 258 |
| Összegzés: kioldók | 262 |
| A megszorítások tiltása | 262 |
| A késleltetés | 262 |
| A tiltás | 263 |
| A törlés | 264 |
| Összegzés: a megszorítások tiltása | 264 |
| Ügyfél oldali adatérvényesítés | 265 |
| Összegzés: ügyfél oldali adatérvényesítés | 266 |
| Felesleges záradékok a SELECT utasításban | 266 |
| Összegzés: felesleges záradékok a SELECT utasításban | 267 |
| Záró gondolatok | 268 |
| Tárolt eljárások | |
| Emlékeztető | 270 |
| Determinisztikus függvények | 271 |
| A tárolt eljárások előnyei | 272 |
| Kisebb adatforgalom | 272 |
| Részleges előfordítás | 273 |
| A paraméterek | 275 |
| További tanácsok | 276 |
| Összegzés: tárolt eljárások | 279 |
| Záró gondolatok | 281 |
| OBDC | |
| Emlékeztető | 284 |
| Ms Query | 288 |
| SQLPrepare | 297 |
| Lekérdező ciklusok | 299 |
| Adatmódosító utasítások | 302 |
| Katalógusfüggvények | 304 |
| Záró gondolatok | 305 |
| JDBC | |
| Kapcsolatok | 309 |
| Kapcsolatok tárolása | 309 |
| Kapcsolati beállítások | 311 |
| Kapcsolatok és DBMS adatok | 313 |
| Összegzés: kapcsolatok | 320 |
| Lekérdezések előkészítése | 322 |
| Lekérdező utasítások | 323 |
| A lekérdezések formája | 324 |
| getBestRowIndentifier | 324 |
| ResultSetMetaData | 325 |
| Lekérdezések beállításai | 327 |
| Összegzés: lekérdezések előkészítése | 329 |
| Eredményhalmazok | 331 |
| Az eredményhalmaz mérete | 331 |
| getXXX metódusok | 332 |
| Összegzés: eredményhalmazok | 335 |
| Adatmódosítás | 337 |
| Összegzés: adatmódosítás | 338 |
| Záró gondolatok | 338 |
| Adatmódosítások | |
| Naplók | 340 |
| Összegzés: naplók | 341 |
| INSERT | 341 |
| Tömeges INSERT | 343 |
| Összegzés: INSERT | 345 |
| UPDATE | 346 |
| Függő UPDATE | 347 |
| Kötegelt UPDATE | 347 |
| Összegzés: UPDATE | 348 |
| DELETE | 349 |
| Összegzés: DELETE | 350 |
| Csúnya módosítások | 350 |
| Összegzés: csúnya módosítások | 352 |
| FETCH és adatmódosítás | 352 |
| Összegzés: FETCH és adatmódosítás | 353 |
| COMMIT és ROLLBACK | 353 |
| Összegzés: COMMIT és ROLLBACK | 356 |
| Záró gondolatok | 356 |
| Zárolás | |
| Mire való a zárolás? | 358 |
| Zárolási módok | 360 |
| Szemcsézettség | 364 |
| Zárolás-kiterjesztés | 365 |
| Közvetett zárolás | 366 |
| Összegzés: zárolás | 367 |
| Elszigeteltségi szintek | 368 |
| Párhuzamossági problémák és elszigeteltségi szintek | 372 |
| READ UNCOMMITTED tranzakciók | 374 |
| READ COMMITTED tranzakciók | 375 |
| REPETABLE READ tranzakciók | 376 |
| SERIALIZABLE tranzakciók | 377 |
| READ ONLY vagy FOR UPDATE | 379 |
| Holtpontok | 380 |
| Összegzés: elszigeteltségi szintek | 382 |
| Indexzárolások | 384 |
| Összegzés: indexzárolások | 386 |
| Forrópontok | 386 |
| Összegzés: forrópontok | 388 |
| Optimista zárolás | 388 |
| Összegzés: optimista zárolás | 391 |
| A keresési trükk | 392 |
| Záró gondolatok | 393 |
| Ügyfelek és kiszolgálók | |
| A közvetítő | 396 |
| Összegzés: a közvetítő | 397 |
| Kiszolgálófolyamatok és -szálak | 398 |
| Rendszerfolyamatok és -szálak | 398 |
| Ügyfélenkénti folyamatok és szálak | 399 |
| Elszigeteltség és párhuzamosság | 400 |
| Összegzés: kiszolgálófolyamatok és -szálak | 401 |
| Az ügyfél feladata | 402 |
| Ügyfélmodell | 403 |
| Összegzés: tippek az ügyfelekhez | 405 |
| Záró gondolatok | 407 |
| Költség alapú optimalizálás | |
| Költség | 411 |
| Statisztikák és hisztogramok | 412 |
| A statisztikák elemzése | 416 |
| EXPLAIN | 417 |
| Tippek | 417 |
| Záró gondolatok | 418 |
| A. függelék: További olvasmányok | 419 |
| B. függelék: Szójegyzék | 421 |
| Tárgymutató | 443 |