ďťż
 
PostgreSQL wymuszenie IndexScan ďťż
 
PostgreSQL wymuszenie IndexScan
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

PostgreSQL wymuszenie IndexScan



Krzysztof - 14-12-2006 16:09
PostgreSQL wymuszenie IndexScan
  Witam
Spotka?em si? z problemem wymuszenia skanowania po indeksie wewn?trz
transakcji.

BEGIN;
INSERT INTO transakcje (transakcja_id, datatransakcji )
VALUES (nextval('transakcja_id_seq'), now() );

EXPLAIN ANALYZE SELECT transakcja_id, datatransakcji FROM transakcje
WHERE transakcja_id =currval('transakcja_id_seq');

END;

Powy?sze wyra?enie wyszukuje poprzez filtrowanie wyniku skanu sekwencyjnego

Seq Scan on transakcje (cost=100000000.00..100169224.90 rows=1
width=12) (actual time=30136.195..30161.270 rows=1 loops=1)
Filter: (transakcja_id = currval('transakcja_id_seq'::regclass))
Total runtime: 30161.388 ms
(3 rows)

Dodam tylko, ?e identyczne polecenie przy zdefiniowaniu np.
transakcja_id=11108 wykorzystuje indeks scan i trwa poni?ej milisekundy.

Próbowa?em wymusza? blokad? skanowania sekwencyjnego
SET enable_seqscan TO off;
SET enable_indexscan TO on;
nic nie pomog?o.

Macie mo?e jaki? pomys? w jaki sposób wymusi? skanowanie po indeksie ?
Column | Type | Modifiers
--------------+-----------------------------
transakcja_id | integer |
not null default
nextval('transakcja_id_seq'::regclass)

datatransakcji| timestamp with time zone
not null default now()
Indeksy:
transakcje_idx PRIMARY KEY, btree (transakcja_id)

Pozdrawiam
Krzysztof





hubert depesz lubaczewski - 14-12-2006 16:09

  On 2006-12-08, Krzysztof <piornik@friko3.onet.pl> wrote:
> Spotka?em si? z problemem wymuszenia skanowania po indeksie wewn?trz
> transakcji.

napisz mo?e po co ci to jest potrzebne, co dok?adnie chcesz uzyska? i
której wersji postgresa u?ywasz.

depesz

--
http://www.depesz.com/ -> nowy, jeszcze lepszy, depesz




Ronald Kuczek - 14-12-2006 16:09

  Krzysztof napisa?(a):
> Witam
> Spotka?em si? z problemem wymuszenia skanowania po indeksie wewn?trz
> transakcji.
>
> BEGIN;
> INSERT INTO transakcje (transakcja_id, datatransakcji )
> VALUES (nextval('transakcja_id_seq'), now() );
>
> EXPLAIN ANALYZE SELECT transakcja_id, datatransakcji FROM transakcje
> WHERE transakcja_id =currval('transakcja_id_seq');
>
> END;
>
Spróbuj rzutowa? currval('transakcja_id_seq') na int4.

Pozdrawiam
Rony




hubert depesz lubaczewski - 24-12-2006 00:37

  On 2006-12-08, Krzysztof <piornik@friko3.onet.pl> wrote:
> EXPLAIN ANALYZE SELECT transakcja_id, datatransakcji FROM transakcje
> WHERE transakcja_id =currval('transakcja_id_seq');

where transakcja_id = (select currval('transakcja_id_seq'));
i będzie ok.

depesz

--
http://www.depesz.com/ -> nowy, jeszcze lepszy, depesz





Krzysztof - 24-12-2006 00:37

  hubert depesz lubaczewski napisał(a):
> On 2006-12-08, Krzysztof <piornik@friko3.onet.pl> wrote:
>> EXPLAIN ANALYZE SELECT transakcja_id, datatransakcji FROM transakcje
>> WHERE transakcja_id =currval('transakcja_id_seq');
>
> where transakcja_id = (select currval('transakcja_id_seq'));
> i będzie ok.

Dzieki za pomoc. Wprowadzilem funkcje dodawania rekordu na serwer, ktora
zwraca currval . Potem na tej podstawie wyciagam pole datatransakcji.

Powyzszy sposob jest bardzo interesujacy.

Pozdrawiam
Krzysztof
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [PostgreSQL] - jak =?ISO-8859-2?Q?zabezpieczy=E6_interesy_tw?==?ISO-8859-2?Q?=F3rcy_systemu_=3F=3F=3F?= postgresql - int/int postgresql Select count(*) czy raczej Select count(ID) [PostgreSQL] jak =?ISO-8859-2?Q?pobra=E6_warto=B6=E6_zwracan?==?ISO-8859-2?Q?=B1_przez_funkcj=EA=3F?= [postgresql] INSERT OR UPDATE - jak =?ISO-8859-2?Q?b=EAdzie_na?==?ISO-8859-2?Q?jlepiej=3F?= [postgresql] kilka =?ISO-8859-2?Q?rekord=F3w_subquery_jako_?==?ISO-8859-2?Q?string?= [PostgreSQL] Jak =?ISO-8859-2?Q?po=B3=B1czy=E6_funkcje_z_w?==?ISO-8859-2?Q?idokiem?= Postgres - replikcja master-master Dopasowanie do "najlepszego" dopasowania :) [ PostgreSQL] Problemy z =?ISO-8859-2?Q?instalacj=B1_PostgreSQL_na_syste?==?ISO-8859-2?Q?mach_Windows?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nocnerozmowy.xlx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com