Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> konfiguracja bazy danych SQL
misiex
post 7.06.2013, 00:03:27
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 6.06.2013

Ostrzeżenie: (0%)
-----


Witam,
potrzebuję załadować do bazy SQL ( Express 2008 ) kilkanaście mln rekordów
- ładowanie poprzez mechanizm DTS z tabel excelowych ,

moje pytanie : jak skonfigurować tabele w bazie SQL ( typy danych lub coś, o czym jeszcze nie wiem J )
aby zapewnić najlepsze działanie ( szybkość odczytu danych , zajmowana przestrzeń dyskowa , zużycie pamięci operacyjnej itd )

z tej bazy będą robione tylko odczyty

dane jakie się tam znajdą to - przykładowo :

kolumna1:
'123123131' 9- ( maksymalnie ) znakowe ID - to czy to będzie liczba czy tekst nie ma dla mnie znaczenia
wybiorę lepszy wariant , w tej kolumnie brak jest pustych wartości

kolumna2:
'12' 2- (maksymalnie) cyfrowa wartość, w Excelu jest to liczba, ale jeśli wydajniejszy jest zapis w postaci "znakowej"
to oczywiście wybieram ten lepszy wariant , w tej kolumnie brak jest pustych wartości

kolumna3:
'130104' 6- ( dokładnie ) znakowy zapis, przedstawiający "datę" - w formacie 'yymmdd' ,
być może efektywniej jest to wyrażać za pomocą prawdziwej daty ( jeśli zajmuje mniej miejsca , szybszy odczyt, przeliczanie, itd )
jeśli tak , to przed załadowaniem danych z Excela , dokonam konwersji... ( wybieram lepszy wariant )
w tej kolumnie brak jest pustych wartości

kolumna4:
'1301' 4- ( dokładnie ) znakowy zapis, przedstawiający "czas" - w formacie 'hh:mm' ,
być może efektywniej jest to wyrażać za pomocą prawdziwego czasu ( jeśli zajmuje mniej miejsca , szybszy odczyt, przeliczanie, itd )
jeśli tak , to przed załadowaniem danych z Excela , dokonam konwersji... ( wybieram lepszy wariant )
w tej kolumnie brak jest pustych wartości

kolumna5:
'12344599' 8- (maksymalnie) cyfrowa wartość, ( coś w rodzaju unikalnego numeru np. artykułu ), w Excelu jest to liczba ,
ale jeśli efektywniej jest to wyrażać za pomocą znaków to wybieram wariant znakowy
w tej kolumnie brak jest pustych wartości

kolumna6:
'ilość' - tu będzie konkretna liczba ( całkowita ) z zakresu ( -9999 do 9999 )
w tej kolumnie brak jest pustych wartości

kolumna7:
'wartość' - tu będzie konkretna wartość ( pieniężna ) z zakresu ( -99999,99 do 99999,99 )
w tej kolumnie brak jest pustych wartości


kolumna8:
kolumny ilość i 'wartość będą jedynymi kolumnami na których będą dokonywane operacje "SUM" dlatego muszą tam być wartości
( chociaż pewnie nie muszą, bo można pewnie przed zsumowaniem, dokonać konwersji na liczbę..... - tak tylko domniemywam jako początkujący SQL-owicz )

kolumna9:
'vat' - pole określające stawkę VAT , ja wyrażam to wpisami ( 23, 8, 5 ) ale czy to będzie liczba czy tekst…
to tylko zależy co jest bardziej wydajne ( zajmujące mniej miejsca )

kolumna10:
'numer zamówienia' - 10 (maksymalnie) znakowy numer zamówienia składający się z cyfr
w większości przypadków będzie to wartość ( wpis ) '0' oznaczający brak zamówienia
w tej kolumnie brak jest pustych wartości

kolumna11:
kilka kolumn typu "TAK" ,"NIE" , albo TRUE, FALSE , ja to wyrażam '0' i '1' , tylko nie wiem co zajmuje mniej miejsca …
w tych kolumnach brak jest pustych wartości

kolumna12:
'nr karty1'
20 (maksymalnie) znakowy wpis określający nr karty ( tu chyba musi być to wyrażane znakowo bo przy wartościach
rzędu : 64123456666778897443 to chyba SQL może ześwirować :-)
w tej kolumnie brak jest pustych wartości


kolumna13:
'nr karty2'
20 (maksymalnie) podobnie jak wyżej , tyle że tutaj mogą się pojawić puste wartości ( o ile może to mieć jakieś znaczenie )

-------------------------------------------------


mam jeszcze dodatkowe pytanie:
SQL Express 2008 ma ograniczenie do 10GB, ale czy jest to ograniczenie dla 1 bazy ?
czy mogę podpiąć 5 baz które mają około 5GB (każda) ?

dziękuję i pozdrawiam

misiex
Go to the top of the page
+Quote Post
mmmmmmm
post 7.06.2013, 07:55:44
Post #2





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

Ostrzeżenie: (0%)
-----


kolumna1 - integer
kolumna2 - integer
kolumna3 - date
kolumna4 - time
kolumna5 - integer
kolumna6 - integer
kolumna7 - money (decimal)
kolumna8 - questionmark.gif
kolumna9 - tu jest problem - ja bym dał integer, ale stawka pt. 'zwolniony' (to nie to samo, co 0%) się nie wpisze, więc varchar(10) lub varchar(2 lub 3) - 'zw' lub 'zw.'
kolumna10 - varchar(10)
kolumna11 - bit (nie pamiętam., czy MS SQL dał już typ boolean)
kolumna12 - varchar(20)
kolumna13 - varchar(20)

indeksy (po zaimportowaniu danych) na pola:
- kolumna1
- kolumna3, kolumna4
- kolumna5
- kolumna10
- kolumna12
- kolumna13
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 2.05.2024 - 15:24