![]() |
![]() |
![]()
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 04:06 |