/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
PostgreSQL -> Clustered index
Fra : Jesper Krogh


Dato : 02-04-04 13:25

Jeg har i phpPgAdmin mulighed for at oprette indexer som clustered, men
jeg synes ikke at kunne finde noget i manualen der beskriver hvad denne
feature dækker over. Er der nogen der ved det? Eller har links til hvor
man kan læse om det?

Jesper

--
../Jesper Krogh, jesper@krogh.cc, Jabber ID: jesper@jabbernet.dk


 
 
Troels Arvin (02-04-2004)
Kommentar
Fra : Troels Arvin


Dato : 02-04-04 14:38

On Fri, 02 Apr 2004 14:25:14 +0200, Jesper Krogh wrote:

> Jeg har i phpPgAdmin mulighed for at oprette indexer som clustered

Jeg synes ikke, det giver mening at kalde et index for clustered. Derimod
giver det mening at sige:
- en tabel kan være clustered efter et index
- et index kan være clustering for en tabel

Endvidere synes jeg kun, at det giver mening at have ét clustering index
pr. tabel.

> jeg synes ikke at kunne finde noget i manualen der beskriver hvad denne
> feature dækker over.

Den må dække over, at phpPgAdmin efter oprettelse af indexet kører en
"CLUSTER indexnavn ON tablenavn" kommando. Bemærk dog, at dette er en
éngangs omorganisering af tabellen; den skal gentages manuelt (evt. via
et cron-job), hvis efterfølgende rækker i tabellen skal medtages i
cluster'ingen:
http://www.postgresql.org/docs/7.4/static/sql-cluster.html

> Er der nogen der ved det? Eller har links til hvor
> man kan læse om det?

Det nævnes i flere af mine databasebøger. - Og sikkert også mange
steder på webbet. Bemærk dog, at "cluster" er et begreb, der anvendes i
med talrige betydninger i forskellige databasesammenhænge.

--
Greetings from Troels Arvin, Copenhagen, Denmark


Jesper Krogh (02-04-2004)
Kommentar
Fra : Jesper Krogh


Dato : 02-04-04 14:44

I dk.edb.database, skrev Troels Arvin:
Den må dække over, at phpPgAdmin efter oprettelse af indexet kører en
> "CLUSTER indexnavn ON tablenavn" kommando. Bemærk dog, at dette er en
> éngangs omorganisering af tabellen; den skal gentages manuelt (evt. via
> et cron-job), hvis efterfølgende rækker i tabellen skal medtages i
> cluster'ingen:
> http://www.postgresql.org/docs/7.4/static/sql-cluster.html

Det ser ud til at passe meget godt med beskrivelsen. Så giver det jo
heller ikke mening at index'et kan være clustered, men forklarer hvorfor
operationen vises sammen med indexerne i phpPgAdmin.
>
> > Er der nogen der ved det? Eller har links til hvor
> > man kan læse om det?
>
> Det nævnes i flere af mine databasebøger. - Og sikkert også mange
> steder på webbet. Bemærk dog, at "cluster" er et begreb, der anvendes i
> med talrige betydninger i forskellige databasesammenhænge.

Yeps, jeg fandt masser af referencer til database clustre på google

Takker.

--
../Jesper Krogh, jesper@krogh.cc, Jabber ID: jesper@jabbernet.dk


Stig Johansen (03-04-2004)
Kommentar
Fra : Stig Johansen


Dato : 03-04-04 08:01

Troels Arvin wrote:

[snip - en god teknisk forklaring]

Jeg håber det er i orden at hoppe ind.
Først - vi er enige om, at for mange ord bliver brugt til for meget.
Eksempelvis kalder man MS's wolfpack for 'cluster' - tsk tsk, et cluster er
squ da en samling terminaler op mod en mainframe(også).

(Jeg kender ikke selv PostgreSQL, men der ser ud som om:)
Men i denne sammenhæng, og det gælder også for MS SQLServer menes der med
clustered index at records blive *fysisk* ordnet efter index.
Det betyder, at det kan blive meget tungt at skrive til tabellen, men til
gengæld vil sortering (fysisk) kunne undgås ved sortering efter indexet.
Det er altså en opvejning af, hvad der er bedst i det specifikke tilfælde.

For MSSQL's vedkommende, /tror/ jeg nok at hash og data ligger i samme
record.
(Nu snakker jeg lidt ud fra IMAGE/SQL på HP3000 maskiner.(=Netværks
database))
Hvis det er tilfældet, opnår man også væsentlig
performanceforbedringer(læsning), da man kan finde en given (unique) record
ved eet enkelt diskopslag, mod de traditionelle 4 på diverse btree
strukturer.

--
Med venlig hilsen
Stig Johansen

Kenn L. Schjødt (08-04-2004)
Kommentar
Fra : Kenn L. Schjødt


Dato : 08-04-04 21:11


"Stig Johansen" <aaa@bbb.com> wrote in message

> (Jeg kender ikke selv PostgreSQL, men der ser ud som om:)
> Men i denne sammenhæng, og det gælder også for MS SQLServer menes der med
> clustered index at records blive *fysisk* ordnet efter index.
> Det betyder, at det kan blive meget tungt at skrive til tabellen, men til
> gengæld vil sortering (fysisk) kunne undgås ved sortering efter indexet.
> Det er altså en opvejning af, hvad der er bedst i det specifikke tilfælde.

Grundet udfordringer med SQL server og heaps (dvs. tabeller uden clustered
indeks på SQL server), kan inserts faktisk være hurtigere med clustered
indeks. Hvis inserts skal være hurtigere skal man dog sørge for at vælge et
enkelt kolonne indeks (unik, numerisk, stigende og smal værdi).

mvh Kenn



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste