webForumDet fria alternativet

Problem med stora datamängder i Access (2GB-begränsning)

4 svar · 1 817 visningar · startad av jepsO

jepsOMedlem sedan mars 2001484 inlägg
#1

Hej,

Jag har ett kundregister med cirka 1,8 miljoner kunder (ja, det är ett stort företag). I kundregistret finns i dag information om kundernas namn, hemadress, vilka produkter kunderna köper, hur länge de har varit kund hos företaget, etc. samt ett unikt KundID.

Till detta vill jag koppla demografiska data som vi har köpt in, där vi har sannolikheten för om personen t.ex. bor i lägenhet eller villa och har 0, 1 eller 2 bilar -- allt baserat på hemadress.

Kundregistret och de demografiska data vill jag sammanföra i en gemensam tabell, för att kunna göra analyser i Excel (med hjälp av tillägget PowerPivot för att kunna hantera fler än 1 miljon rader). Problemet är att den resulterande databasen (jag skapar tabellen i en ny databas) snabbt når taket på 2GB varpå körningen avbryts med följande felmeddelande:

Cannot open database ''. It may not be a database that your application recognizes, or the file may be corrupt.

SQL-frågan är en simpel JOIN:

SELECT [Kundregister].KundID, [Kundregister].Hemadress, [... alla fält i kundregistret ...], 
[Demografidata].Boendeform, [Demografidata].AntalBilar, [... alla fält i demografidatatabellen ...] INTO [NyTabell]
FROM [Kundregister].KundID 
LEFT JOIN [Demografidata].KundID

Även om det är 1,8 miljoner rader och 40 kolumner motsvarar det "bara" 72 miljoner celler i tabellen. Med en begränsning på 2GB borde varje cell kunna innehålla 30 bytes, vilket låter ganska mycket.

Finns det något sätt att åtgärda det här problemet?

  • Ändra datatyper i tabellerna (har inte full koll på detta, typ Text vs. Integer)?
  • Byta DB-hanterare till något annat än Access (som inte kostar multum)?
  • Andra förslag?

Det enda jag vill ha är en Access-tabell eller textfil som jag sedan kan importera till Excel (via PowerPivot) för att sedan analysera resultaten där. Access är alltså enbart till för att sammanfoga data från flera källor.

Stort tack på förhand!

clarkbonesMedlem sedan feb. 20013 023 inlägg
#2

Access är inte gjort för sådana datamängder. Har företaget 1,8 miljoner kunder borde man ha råd att lägga ut lite pengar på en vettig databashanterare. Men du kan ju använda SQL Server Express 2008 R2, som är gratis och klarar 10 GB.

http://msdn.microsoft.com/en-us/library/cc645993.aspx

Ett alternativ är väl att skapa en vy istf en tabell som PowerPivot kan läsa, då slipper du dubbellagring. (Kan dock inte PowerPivot )

LaspMedlem sedan juli 200012 980 inlägg
#3

Helt klart rätt tillfälle att ta klivet över till SQL. Har själv lyft från Access till SQL2008R2
Det finns inga problem att konvertera och det kostar inget.
Men när det gäller Pivot skall du ta och titta på qlickviuw http://www.qlikview.com/se

jepsOMedlem sedan mars 2001484 inlägg
#4

Tack för input!

Det löste sig faktiskt med Access. Problemet var att de demografiska data innehöll många dubblettrader, vilket gjorde att den resulterande tabellen fick alldeles för många miljoner rader. Efter att ha rensat för dubbletter har jag nu fått det att flyga.

Dock kan jag mycket väl stöta på problem med större datamängder framöver, och då tror jag att SQL Server är helt rätt väg att gå.

LaspMedlem sedan juli 200012 980 inlägg
#5

Man skall nog inte invänta problem om man kör Access med flera användare. Det är ju ingen större grej att lyfta över all data.
God datavård är pre!

137 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)