Vra

Ek is die leiding van'n projek waar ons sal wees opname statistieke data.Ek wil graag om te behou die data vir die jaar.Egter, ek wil ook graag om te hou die primêre tafel uit om opgeblase met data wat, terwyl dit nodig is vir'n lang termyn trending, is dit nie nodig vir'n kort termyn verslagdoening.

Wat is die beste strategie vir die hantering van hierdie situasie?Eenvoudig argief die ou data na'n ander tafel?Of "rol dit op" via'n paar konsolidasie van die data self (en dan slaan dit af na'n ander tafel)?Of iets heeltemal anders?

Bykomende inligting:ons is met behulp van SQL Server 2005.

Was dit nuttig?

Oplossing

Ons gebruik beide metodes by my werk, maar effens anders, ons hou alle verkope data in die primêre tafel vir 30 dae, dan in die nag (deel van die nag werk) die dae verkope opgerol in opsommings (n afname van x produk verkoop vandag ens) in 'n aparte tafel vir verslagdoening redes, en verkope van meer as 30 dae is in die argief in 'n ander databasis, dan een keer per jaar (ons gaan op belasting jaar) 'n nuwe argief databasis begin. nie presies perfek nie, maar ..

hierdie manier waarop ons vinnig kry die opsommings data, hou alle huidige verkope data op hande en 'n onbeperkte ruimte vir die volledige argief data. Ons het probeer om dit alles in een databasis (in verskillende tabelle), maar die grootte van die lêer van die databasis (Inter Base) sal groei so groot dat dit die stelsel af te sleep.

Die enigste werklike probleem wat ons het is die toegang tot gedetailleerde inligting wat 'n hele paar databasis strek, as aansluiten en loskoppelen is stadig, en ontleding het in kode wat gedoen moet word, eerder as sql

Ander wenke

As jy met behulp van SQL Server 2005, dit kan 'n goeie kandidaat vir die gebruik van verdeel tafels .

Na gelang van beperkings soos begroting, ens, hierdie klink soos 'n perfekte kandidaat vir 'n datapakhuis aansoek. Dit sou tipies stel 'n nuwe bediener vir gebruik as 'n datapakhuis. SQL Server 2005 ondersteun baie van hierdie aktiwiteit uit die boks, verder jy dalk in staat wees om aan te wend bykomende SQL Server dienste (bv Analysis Services, Reporting Services) om bykomende waarde te lewer aan jou gebruikers. (Sien http://www.microsoft.com/technet/prodtechnol/ sql / 2005 / dwsqlsy.mspx )

@Jason - ek sien nie hoe die behoud van data in'n gewone ou teks lêers sal toelaat dat jy om te doen'n lang termyn trending analise maklik op die data.

@Jason - ek dink my punt is dat as enige soort van die ad hoc-ontleding (d. w. strending) moet gedoen word op die data wat deur die besigheid mense, rol op of argivering van die data na die teks lêers regtig nie enige probleme op te los.Natuurlik skryf kode om te verteer'n teks lêer is maklik in baie tale, maar dat die probleem opgelos is.Ook, ek sou argumenteer dat vandag se RDBMS se is almal uiters duursame wanneer die opstel en in stand gehou word behoorlik.As hulle nie hoekom sou jy'n besigheid op die top van een (laat staan die argief data om dit te)?Ek het net nie sien nie die punt van die argief na'n eenvoudige teks lêer as gevolg van die eis dat die duursaamheid van die teks lêers is beter as dié van databasisse.

een van dié opsies is uitstekend, maar dit hang af van die probleem domein. Vir dinge soos kontantsaldo's of statistiese data, ek dink dat oprol rekords en konsolideer hulle is die beste manier, jy kan dan die opgerol rekords te skuif na 'n parallel argief tafel, insleutel hulle in so 'n manier dat jy kan "rolle" as nodig. Dit hou jou primêre data tafel skoon en vinnig, maar kan jy die ekstra data vir ouditering of wat ook al te behou. Die belangrikste vraag is, hoe kan jy implementeer die "roll-up" proses. Óf outomaties, via 'n sneller of bediener kant proses, of deur die gebruiker intervensie by die aansoek vlak?

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top