VoyForums
[ Show ]
Support VoyForums
[ Shrink ]
VoyForums Announcement: Programming and providing support for this service has been a labor of love since 1997. We are one of the few services online who values our users' privacy, and have never sold your information. We have even fought hard to defend your privacy in legal cases; however, we've done it with almost no financial support -- paying out of pocket to continue providing the service. Due to the issues imposed on us by advertisers, we also stopped hosting most ads on the forums many years ago. We hope you appreciate our efforts.

Show your support by donating any amount. (Note: We are still technically a for-profit company, so your contribution is not tax-deductible.) PayPal Acct: Feedback:

Donate to VoyForums (PayPal):

Login ] [ Contact Forum Admin ] [ Main index ] [ Post a new message ] [ Search | Check update time | Archives: 1[2] ]
Subject: Re: Dæmi 3c á vikublaði 8


Author:
Hjálmtýr
[ Next Thread | Previous Thread | Next Message | Previous Message ]
Date Posted: 00:00:22 13/Dec/2007
In reply to: Edgar F. Codd 's message, "Dæmi 3c á vikublaði 8" on 22:11:07 12/Dec/2007

>Ég er að skoða sýnilausnir við lið c í dæmi 3,
>vikublaði 8. Liðurinn hljómar svo:
>
>"Gerið nú ráð fyrir að klasaður B-tré vísir sé á
>dálkinn B í S. Sýnið gott framkvæmdarplan fyrir SQL
>fyrirspurnina "SELECT S.E FROM R NATURAL JOIN S WHERE
>R.C=44" og reiknið fjölda síðuaðganga. Gerið ráð fyrir
>að 1% lína í R uppfylli skilyrðið í WHERE-hlutanum.
>Útskýrið aðrar forsendur sem þið þurfið að gefa ykkur
>til að leysa verkefnið."
>
>Í lið A var búið að reikna út að R hefði 997 síður og
>S hefði 6104 síður.
>
>Í fyrra hluta svarsins er talað um 987 lesnar síður og
>10 sem uppfylla selectionið. Í síðari lið eru þessar
>10 síður svo teknar og framkvæmt join við S.
>Reikningarnir eru svo:
>
>98 * (2 + 1) = 294
>
>Þetta skil ég ekki alveg. Hvaðan er þessi 98 tala
>komin? Þyrfti ekki að taka þessar 10 síður og
>framkvæma leit í S fyrir joinið fyrir hverja röð sem
>uppfyllti upphaflegt select? Til dæmis:
>
>(1% af röðum R) * (lesa b-tré lykil + finna færslu) =
>(50000*0.01) * (2,4 + 1)
>
>Gætir þú skýrt þetta fyrir mér?
>
>Kveðja,
>Björn Swift

Nei, ég get ekki útskýrt þetta fyrir þér, því þetta er rangt í sýnislausnunum!

Þetta er næstum því alveg rétt eins og þú setur það fram. Þ.e. fjöldi lína í T1 (sem er 500) sinnum (fjöldi síðulestra í B-trénu + lestur gagnasíðunnar). Þetta ætti því að vera 500*(2+1) = 1500. Ég skil ekki af hverju þú notar 2,4. Gætir þú skýrt það fyrir mér? :-)

Talan 2, sem ég nota sem fjölda síðulestra í B-trénu er bara skot á það hversu hátt B-tréð er. Oftast er rótarsíðan geymd í minni, og ef það eru 500 börn undir hverri síðu þá gefur hæðin 2 (þ.e. 2 síðulestrar plús rótarsíðan) 500*500*500 lauf í trénu, sem er 125 milljón færslur. Það ætti að duga fyrir flestar töflur. Með því að hafa þessa tölu 3 þá förum við uppí 500^4 sem er um 62 þúsundir milljóna færslna.
Sem sagt, þið megið gera ráð fyrir að þurfa að lesa tvær (eða þrjár) síður við að fara í gegnum B-tréð til að finna rétta gagnasíðu.

[ Next Thread | Previous Thread | Next Message | Previous Message ]


[ Contact Forum Admin ]


Forum timezone: GMT+0
VF Version: 3.00b, ConfDB:
Before posting please read our privacy policy.
VoyForums(tm) is a Free Service from Voyager Info-Systems.
Copyright © 1998-2019 Voyager Info-Systems. All Rights Reserved.