Re: Index-Verwendung

Andy Wenk <[email protected]>
Newsgroups gmane.comp.db.postgresql.german
Message-ID <CADA9kr92EJsJ52avgyeymDcMZ5QUryGq2soNsvweqC4fGuAfjw@mail.gmail.com>
Hi,

On 23 May 2012 10:59, Gülümser Köroglu <[email protected]> wrote:
> Hallo,
>
> nach Herrn Renners Empfehlung habe ich nun mit der Partitionierung der
> grossen Tabellen angefangen.
>
> Leider ist nun die Abfrage der Daten langsamer. Folgender Fall:
>
> CREATE TABLE ndalarmhistory
> (
>   id bigserial NOT NULL,
>   user_id text,
>   ndalarm_id bigint,
>   action integer,
>   actiontime timestamp without time zone,
>   touser text,
>   CONSTRAINT ndalarmhistory_id_pk PRIMARY KEY (id ),
>   CONSTRAINT ndalarmhistory_ndalarm_id_fkey FOREIGN KEY (ndalarm_id)
>       REFERENCES ndalarm (ndalarm_id) MATCH SIMPLE
>       ON UPDATE CASCADE ON DELETE CASCADE,
>   CONSTRAINT ndalarmhistory_user_id_fkey FOREIGN KEY (user_id)
>       REFERENCES users (user_id) MATCH SIMPLE
>       ON UPDATE CASCADE ON DELETE CASCADE
> );
>
> Einer der Child-Table:
>
> CREATE TABLE ndalarmhistory_20000000
> (
>   CONSTRAINT ndalarmhistory_20000000_pkey PRIMARY KEY (id ),
>   CONSTRAINT ndalarmhistory_20000000_ndalarm_id_fkey FOREIGN KEY
> (ndalarm_id)
>       REFERENCES ndalarm (ndalarm_id) MATCH SIMPLE
>       ON UPDATE NO ACTION ON DELETE NO ACTION,
>   CONSTRAINT ndalarmhistory_20000000_user_id_fkey FOREIGN KEY (user_id)
>       REFERENCES users (user_id) MATCH SIMPLE
>       ON UPDATE NO ACTION ON DELETE NO ACTION,
>   CONSTRAINT ndalarmhistory_20000000_id_check CHECK (id >= 20000000 AND id <
> 25000000)
> )
> INHERITS (ndalarmhistory)
> WITH (
>   OIDS=FALSE
> );
>
> Indices auf dieser Tabelle:
>
> CREATE INDEX ndalarmhistory_20000000_action_ix
>   ON ndalarmhistory_20000000
>   USING btree
>   (action , ndalarm_id , actiontime  DESC);
>
>
>
> CREATE INDEX ndalarmhistory__20000000_actiontime_ix
>   ON ndalarmhistory_20000000
>   USING btree
>   (actiontime  DESC);
>
>
> Abfrage:
> select ActionTime from NDAlarmHistory  where Action  = 0  AND NDAlarm_id
> ='56' order by actiontime desc limit 1
>
> Damit möchte ich aus aktuell 43 Mio Daten (unterteilt in child table a 5Mio
> Daten) die letzte Aktivitaet des Alarms 56 ermitteln (Für 56 sind ca. 25.000
> Aktivitaeten gespeichert)
>
> Explain Anlayze liefert:

der Output fehlt hier ...

> Gülümser Köroğlu
> Junior Software Engineer
>
> ________________________________
> ________________________________
> nanodems Ltd.
> Because Integration Matters
> ________________________________
> ________________________________
>
> Gazi Teknopark
> Golbasi
> 06830
> Ankara / Turkey
>
> Tel: +90 312 485 06 78 Fax: +90 312 485 06 78
> ________________________________
> This e-mail and the files attached to it (if any) have been sent by the
> sender under his/her own individual discretion; they can not be copied,
> disclosed or sold for any purpose.
> If you are not the intended recipient (or have received this e-mail in
> error)please notify the sender immediately and destroy this e-mail.
> Any unauthorised copying, disclosure or distribution of the material in this
> e-mail is strictly forbidden.
> Nanodems ltd. sti. accepts no responsibility on the accuracy, integrity and
> currency of the information transmitted with this message.
>
>



-- 
Andy Wenk
Hamburg - Germany
RockIt!

"CouchDB - Das Praxisbuch für Entwickler und Administratoren"
http://www.galileocomputing.de/2462
http://www.couchdb-buch.de

+++ english version is coming +++
http://www.couchdb-book.com

"PostgreSQL 8.4: Das Praxisbuch"
http://www.galileocomputing.de/2008
http://www.pg-praxisbuch.de

-- 
Sent via pgsql-de-allgemein mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.