ďťż
 
Wydajnosc ďťż
 
Wydajnosc
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

Wydajnosc



nowy - 16-10-2007 00:00
Wydajnosc
  Witam

mam taką dziwna sytuacje

Moja główna tabela ma 70 kolumn

czy będzie lepiej rozłożyć ja na 3 tabele (w jakiś logiczna myśl) i
spiąć ja relacja

czy zostawić tak jak jest

i co wtedy z wydajnością

baza to MS SQL 2005 EX

Wszelkie info mile widziane





wloochacz - 16-10-2007 00:00

  [ciach]
> Wszelkie info mile widziane
To jest dopiero konkretne pytanie! ;-)
Odpowiedź znam tylko jedną; to zależy.

--
wloochacz




nowy - 16-10-2007 00:00

  wloochacz pisze:
> [ciach]
>> Wszelkie info mile widziane
> To jest dopiero konkretne pytanie! ;-)
> Odpowiedź znam tylko jedną; to zależy.
>
OD czego
co jeszcze jest potrzebne

wg mnie to proste pytanie
czy tabela ma mieć 70 kolumn

czy zrobić 3 tabele średnio po 20 kolumn z tymi samymi danymi




Grzegorz DANOWSKI - 16-10-2007 00:00

  Użytkownik "nowy" <bombelo@poczta.onet.pl> napisał w wiadomości
news:fev85b$khr$1@nemesis.news.tpi.pl...
> wloochacz pisze:
>> [ciach]
>>> Wszelkie info mile widziane
>> To jest dopiero konkretne pytanie! ;-)
>> Odpowiedź znam tylko jedną; to zależy.
>>
> OD czego
> co jeszcze jest potrzebne
>
>
> wg mnie to proste pytanie
> czy tabela ma mieć 70 kolumn
>
> czy zrobić 3 tabele średnio po 20 kolumn z tymi samymi danymi

Najpierw się zastanów czy tak dużej tabeli nie da się znormalizować, bo
raczej żadko istnieje potrzeba użycia 70 atrybutów. Może np. masz 31 kolumn
z planami na kolejne dni następnego miesiąca? Poza tym jeśli już musisz mieć
te 70 kolumn, to pomyśl jakie dane będą używane w zapytaniach - jeśli np.
większość zapytań będzie dotyczyła tylko niewielkiej liczby atrybutów, a
dodatkowo pozostałe kolumny będą relatywnie ciężkie (długie stringi) to może
warto sztucznie wyodrębnić te atrybuty (jeśli do tego nie prowadzi
normalizacja). Ale jeśli za każdym razem będziesz ściągał wszystkie 70
kolumn, to podział na 3 tabele tylko pogorszy wydajność.
--
Pozdrawiam
Grzegorz





wloochacz - 16-10-2007 00:01

  [ciach]
>> OD czego
>> co jeszcze jest potrzebne
Projekt, projekt jest potrzebny.
Co to za dane i w jaki sposób będą używane?

>> wg mnie to proste pytanie
>> czy tabela ma mieć 70 kolumn
>>
>> czy zrobić 3 tabele średnio po 20 kolumn z tymi samymi danymi
>
> Najpierw się zastanów czy tak dużej tabeli nie da się znormalizować, bo
> raczej żadko istnieje potrzeba użycia 70 atrybutów. Może np. masz 31 kolumn
> z planami na kolejne dni następnego miesiąca? Poza tym jeśli już musisz mieć
> te 70 kolumn, to pomyśl jakie dane będą używane w zapytaniach - jeśli np.
> większość zapytań będzie dotyczyła tylko niewielkiej liczby atrybutów, a
> dodatkowo pozostałe kolumny będą relatywnie ciężkie (długie stringi) to może
> warto sztucznie wyodrębnić te atrybuty (jeśli do tego nie prowadzi
> normalizacja). Ale jeśli za każdym razem będziesz ściągał wszystkie 70
> kolumn, to podział na 3 tabele tylko pogorszy wydajność.
No więc właśnie, to ZALEŻY! :)

--
wloochacz




dap997 - 16-10-2007 00:01

  nowy wrote:
> Witam
>
> mam taką dziwna sytuacje
>
> Moja główna tabela ma 70 kolumn
>
> czy będzie lepiej rozłożyć ja na 3 tabele (w jakiś logiczna myśl) i
> spiąć ja relacja
>
> czy zostawić tak jak jest
>
> i co wtedy z wydajnością
>
>
> baza to MS SQL 2005 EX
>
>
> Wszelkie info mile widziane

Sprawdz :)
A tabele normalizuje się zgodnie z postaciami normalnymi.
http://pl.wikipedia.org/wiki/Posta%C...bazy_danych%29

dap




nowy - 17-10-2007 00:01

  wloochacz pisze:
> [ciach]
>>> OD czego
>>> co jeszcze jest potrzebne
> Projekt, projekt jest potrzebny.
> Co to za dane i w jaki sposób będą używane?
>
>>> wg mnie to proste pytanie
>>> czy tabela ma mieć 70 kolumn
>>>
>>> czy zrobić 3 tabele średnio po 20 kolumn z tymi samymi danymi
>>
>> Najpierw się zastanów czy tak dużej tabeli nie da się znormalizować,
>> bo raczej żadko istnieje potrzeba użycia 70 atrybutów. Może np. masz
>> 31 kolumn z planami na kolejne dni następnego miesiąca? Poza tym jeśli
>> już musisz mieć te 70 kolumn, to pomyśl jakie dane będą używane w
>> zapytaniach - jeśli np. większość zapytań będzie dotyczyła tylko
>> niewielkiej liczby atrybutów, a dodatkowo pozostałe kolumny będą
>> relatywnie ciężkie (długie stringi) to może warto sztucznie wyodrębnić
>> te atrybuty (jeśli do tego nie prowadzi normalizacja). Ale jeśli za
>> każdym razem będziesz ściągał wszystkie 70 kolumn, to podział na 3
>> tabele tylko pogorszy wydajność.
> No więc właśnie, to ZALEŻY! :)
>
generalnie to 45% pola daty, kolejne 45% to pola textowe (300)znaków -
pole uwag do dat
pozostałe 10% to klucze obce do innych tabel

nie robie wielu operacji na datach
generalnie tylko 6 dat jest branych do jakichkolwiek obliczeń

wszystkie daty i pola uwag są wyświetlane w programie w 2 różnych oknach
6dat w pierwszym oknie
reszta to takie szczegóły

Wiec lepiej w kilku tabelach w zależności jak to wyświetlam ???




Szymon - 17-10-2007 00:01

  nowy pisze:
> wloochacz pisze:
>> [ciach]
>>>> OD czego
>>>> co jeszcze jest potrzebne
>> Projekt, projekt jest potrzebny.
>> Co to za dane i w jaki sposób będą używane?
>>
>>>> wg mnie to proste pytanie
>>>> czy tabela ma mieć 70 kolumn
>>>>
>>>> czy zrobić 3 tabele średnio po 20 kolumn z tymi samymi danymi
>>>
>>> Najpierw się zastanów czy tak dużej tabeli nie da się znormalizować,
>>> bo raczej żadko istnieje potrzeba użycia 70 atrybutów. Może np. masz
>>> 31 kolumn z planami na kolejne dni następnego miesiąca? Poza tym
>>> jeśli już musisz mieć te 70 kolumn, to pomyśl jakie dane będą używane
>>> w zapytaniach - jeśli np. większość zapytań będzie dotyczyła tylko
>>> niewielkiej liczby atrybutów, a dodatkowo pozostałe kolumny będą
>>> relatywnie ciężkie (długie stringi) to może warto sztucznie
>>> wyodrębnić te atrybuty (jeśli do tego nie prowadzi normalizacja). Ale
>>> jeśli za każdym razem będziesz ściągał wszystkie 70 kolumn, to
>>> podział na 3 tabele tylko pogorszy wydajność.
>> No więc właśnie, to ZALEŻY! :)
>>
> generalnie to 45% pola daty, kolejne 45% to pola textowe (300)znaków -
> pole uwag do dat
> pozostałe 10% to klucze obce do innych tabel
>
>
> nie robie wielu operacji na datach
> generalnie tylko 6 dat jest branych do jakichkolwiek obliczeń
>
> wszystkie daty i pola uwag są wyświetlane w programie w 2 różnych oknach
> 6dat w pierwszym oknie
> reszta to takie szczegóły
>
>
> Wiec lepiej w kilku tabelach w zależności jak to wyświetlam ???

Nie, lepiej w kilku tabelach w zależności od logicznej struktury
programu/bazy/danych. Zależy jaki masz projekt, co to za dane i to nie
ma znaczenia czy pola tekstowe czy nie. Poczytaj o 3 postaci normalnej,
na początek powinno wystarczyć, potem możesz poczytać dlaczego w dużych
bazach jej nie używać :)




szaman - 19-10-2007 00:00

 
> wg mnie to proste pytanie
> czy tabela ma mieć 70 kolumn
>
> czy zrobić 3 tabele średnio po 20 kolumn z tymi samymi danymi
>
>

Zastanawia mnie skąd wziąłeś ten podział na trzy a może lepiej będzie na
70 ? ;-)

Z własnego doświadczenia doradzam zrób jedną tabelę.

Co do normalizacji to jak najbardziej musisz wiedzieć co to takiego i
nauczyć się stosować a gdy już się nauczysz i będziesz to miał, że tak
powiem w nawyku i to z dokładną znajomościa zagadnienia i problemów na
wszystkich szczeblach produkcji aplikacji to wtedy musisz zacząć myśleć
o denormalizacji. Normalizacja bowiem często stoi w sprzeczności z
wydajnością bazy.

Co do tych moich doświadczeń to : miałem niegdyś zagadnienie typu 92
pola do tabeli z których 90% to pola tekstowe i to dużych rozmiarów,
ponadto 90% z nich powinna być zesłownikowana dla wartości występujących
więcej niż raz (taki typ słownika mający ułatwić wprowadzanie i
wyszukiwanie a nie ograniczać wartości). Rzecz jasna natrafiłem na
ograniczenia bazy a przede wszystkim maksymalny rozmiar rekordu - w
efekcie musiałem podzielć tą tabelę na 8 mniejszych w relacji jeden do
jednego. Napracowałem się z oprogramowaniem całości bo przecież
wszystkie select'y, insert'y, update'y, delete'y musiały być wykonywane
na tym oktecie. Po kilku latach przenosiłem to na lepszą bazę danych i
wolałem przerobić całość na jedną tabelę mimo, że wiązało się to z
przeróbką również aplikacji - nie mniej robiłem to z ochotą bo było to
upraszczanie sytuacji. Tym przykładem chciałem pokazać, że bardzo liczy
się a często wręcz najbardziej nie wydajność bazy a pracochłonność jej
pisania a potem utrzymania.

Co do testów wydajności to myślę, że jedna tabela też będzie szybciej
działać niż łączenie kilku, no i utrzymywanie niezbędnych do takiego
łączenia indeksów.

Przecież teraz naszły takie czasy, że aby sprostać nowym wymaganiom
wydajności (w szczególności spowodowanym rozmiarami baz) stosuje się
wręcz podejście obiektowe przechowując w jednym "rekordzie" całe złożone
zhierarchizowane struktury, które normalnie musiał byś zdekomponować
do szeregu tabel a przy odczycie skomponować obiekt (co zajmuje i czas
programisty i bazy).
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Polski Corel 11 i update'y SAP i Linux czcionka [Firebird]Kilka zapytań zebrać w jedno SQL i genealogia przekierowanie STDOUT i STDERR? format eps oracle vs sybase bo jestem w kropce.... [PostgreSQL] Kompilacja pod Windows MSSQL2005 Express
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • wawa19wwa91.pev.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com