Atpakaļ uz pirmo lapu

laacz » 2004 » 28. janvāris

Oracle

10:45 @ 2004-01-28 = 16 blabla  

MySQL'am, Postgresam un vēl iespējams šim tam ir daiļa nestandarta konstrukcija LIMIT from, how much

Piem., iekš Oracle šādas lietas nav. Taču, viens daiļš selekts prot to imitēt.

SELECT * FROM (
  SELECT * FROM (
    SELECT * FROM (
      SELECT * FROM (
        SELECT 
         order–key, 
         data–values 
        FROM 
          table 
        ORDER BY 
          order–key DESC
      ) WHERE rownum <= max–limit
    ) ORDER BY order–key ASC
  ) WHERE rownum <= min–limit
) ORDER BY order–key DESC

Pie kam, iesaku ar šo rownum uzmanīties. Elfz iepointoja, ka jamo var salīdzināt tikai ar < vai <=. Piem., SELECT COUNT(lauks) FROM table WHERE rownum > 1 vai SELECT COUNT(lauks) FROM table WHERE rownum >= 2 atgriezīs 0 pat tad, ja tabulā ir dikti daudz ierakstu.

1 hm @ 11:44 (2004. gada 28. janvāris)

varbuut shitaa ir labaak?
select * from (select rownum rownum1, doc_rsn from tw1_document) where rownum1>10 and rownum1<20

shitas buus baigais DB hits ganjau… bet es nezinu kas ir sliktaak tie 5 selekti vai shie 2…

2 DazzleWand @ 12:04 (2004. gada 28. janvāris)

Ņja … dazji labi Oracle "guru" šo to sliktu pateiktu par piecu līmeņu subselectu …

3 sorehead @ 13:04 (2004. gada 28. janvāris)

oracle ir speciāls vaicājumu optimizācijas rīks, ar kuru tad arī ir iespējams pārbaudīt, kurš no vaicājumiem izpildās ātrāk (tas protams ir vesels kurss priekšmētā DBVS, bet nu tomēr, iespēja pastāv)..

4 hm @ 13:27 (2004. gada 28. janvāris)

var arii pastiities execution plaanu ar visiem laikiem ;]

5 Jāzeps @ 13:45 (2004. gada 28. janvāris)

A kāpēc tie ORACLE veidotāji neuzveido tādu pašu?

6 whateva @ 13:51 (2004. gada 28. janvāris)

SELECT num, info
FROM (SELECT ROWNUM num, info
FROM (SELECT info
FROM some_table
ORDER BY info))
WHERE num BETWEEN 2 AND 10

shitaa var ar nedaudz mazaak subselectiem to pashu dabuut

7 whateva @ 13:53 (2004. gada 28. janvāris)

pie tam explain plans uzraada, ka tas ir ap 3x lapaaks nekaa ar 5 subselectiem

8 Tigers @ 13:56 (2004. gada 28. janvāris)

Ar rownumu viss būtu kulē, ja viņš to ieraksta numuru piemestu pēc tam, kad resultsets ir noorderēts. Bet to viņš izdarīt nevar, rezultātā nākas šitā dilsties.
Hm variants liekas vienkāršāks, bet tais fullscan visai tabulai.

9 whateva @ 14:03 (2004. gada 28. janvāris)

bet protams, jo tak saorderēt vajag.
uzliec indexu un būs ok :P

10 endrju @ 17:37 (2004. gada 28. janvāris)

Es paklusēšu… Oracle speciālisti…

11 laacz @ 17:39 (2004. gada 28. janvāris)

endrju:

a) Kurš teica, ka speciālisti, izņemot Tevi? (Paldies par komplimentu)
b) Paklusē gan, nespeciālist :)

12 endrju @ 09:27 (2004. gada 29. janvāris)

Nestreso laacz ;–) Paranoja, ka visi vēl ļaunu vai brauc augumā? Da beidz… tas nav manā stilā.

13 Livingston @ 16:13 (2004. gada 30. janvāris)

Njā, ta ir Subselektu Kings no visiem, ko esmu redzējis :)

1. komentārā bija pareizā atbilde gadījumiem, ja nevajag sortēt
6. komentā variants ar sortēšanu

Abi krietni īsāki par to murgu :)

14 whateva @ 17:23 (2004. gada 30. janvāris)

to tad esi veel maz redzeejis, ja tas ir subselectu kings :D lai gan raxtot vienkaarshi selectu no ashpadsmittabulaam var to pashu uzraxtiit ar subselectiem, depends on tabulu, ierakstu skaitu un indexiem

15 Livingston @ 17:42 (2004. gada 30. janvāris)

Nu redzējis es esmu ļoti daudz, bet kings tas ir tādēļ, ka dara TIK elementāru lietu TIK samudrītā veidā.

Ir nācies redzēt arī gana daudz konstrukcijas

select .. where kaut_kas in
(select .. where kaut_kas in
(select .. where kaut_kas in
(select .. where kaut_kas in
(select .. where kaut_kas in

utt.

Bet tam selektam arī uzdevums bija nedaudz nopietnāks. Bet vienalga smieklīgi, ņemot vērā, ka to kodu rakstīja profesionāļi.

16 whateva @ 17:59 (2004. gada 30. janvāris)

bivajet, ka triviālām lietām meklējam superbuper sarežgītus risinājumus, pašam tā ir bijis :)

Kā tu saucies:
Tava e-pasta adresīte:
(nevienam netiks rādīta, vai dota; pat pie komentāra ne)
Ko teiksi?
FYI
* Formatēšana: iekļaujot tekstu no abām pusēm iekā '//', tas iznāks kursīvā: //teksts// (teksts), bet treknu tekstu var dabūt ar '**' katrā pusē: **teksts** (teksts), savukārt pasvītrotu ar '__': __teksts__ (teksts).
* Enteri tiek automātiski pārtaisīti par enteriem. Jebkurš HTML (izņemot <BR.*>) tiek parādīts, kā ievadīts (ne HTML'iski)
* E-pastu var vadīt droši iekšā, ja ir bailes no spambotiem. Tas tiek aizsargāts no jamajiem.
* Jebkurš url'is (www.kaka.com, http://kaka.com/, …) tiek automātiski pārtaisīts par spiežamu prieku (www.kaka.com, http://kaka.com/, …)
* Ko nozīmē 'detransliterēšana'? Manuprāt sen jau ir laiks sākt rakstīt nevis translitā (aaboljiishi), bet gan normāliem letiņu burtiem (āboļīši). Tad nu tieši to arī dara attiecīgā poga - pārveido tekstu no translita uz parastu. Gadās kļūmītes, bet labāk šitā nekā nekā.
 

Valid CSS! Valid XHTML 1.0 Transitional! Valid RSS! Valid Atom!
Tātad tā. Kopīraita notice. Viss materiāls, kas atrodams šajā saitā nedrīkst tikt izplatīts, kopēts, jebkādi citādi reproducēts vai izmantots bez manas (laacz) rakstiskas atļaujas. šīs tiesības man laipni piedāvā Autortiesību Likums.
Jebkura informācija, kuru kāds labprātīgi publicē šajā saitā (piemēram, komentāri), pieder tās autoram. Taču, ievietojot infromāciju šajā saitā, tās autors sniedz saita īpašniekam tiesības to daļēji vai pilnā apjomā lietot, izplatīt, reproducēt, modificēt, adaptēt, publicēt, tulkot, publiski demonstrēt. Saita īpašnieks ir tiesīgs jebkuru komentāru jebkurā brīdī dzēst, vai modificēt.
© 1996 — 2025 laacz. Visas tiesības… nu jūs jau zināt, kur.
Spēcināts ar SPP (S Pivom Potjaņet) v2.0b (code name Marasmus)
Hostingu laipni piedāvā DEAC.

laacz blog activity

Top.LV

 

Lapa izlīdusi no servera dzīlēm 0.03939 sekundē(s)