![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 3.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Biorę udział w budowie systemu zbierania i przetwarzania danych pomiarowych opartego na bazie Oracle 11g. Zastanawiam się nad zunifikowaniem większości danych pomiarowych i wrzucenie ich do jednej tabeli. Problem w tym, że system ma przechowywać dane z 5 lat czyli szacunkowo w tej tabli znalazłoby się ok. 500 mln. rekordów. Najczęściej wykorzystywane dane w systemie będą obejmowały okres przede wszystkim ostatnich 2-óch miesięcy (ok. 70% zapytań) oraz ostatniego rok (ok.25%). I tutaj moje pytania: Czy stworzenie tak dużej tabeli znacząco wpłynie na wydajność zapytań na tej tabeli w stosunku do mniejszych tabel powiedzmy z 50 mln. rekordów? Czy lepiej podzielić table na kilka mniejszych i korzystać z operatora UNION w razie potrzeby? Ile takich mniejszych tabel zastosować? Czy może złym pomysłem jest unifikacja i tworzenie tak dużej tabeli z punktu widzenia optymalizacji bazy? Z góry dziękuje za udzielone odpowiedzi oraz sugestie. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 253 Pomógł: 29 Dołączył: 18.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
W twoim przypadku jak masz jasno określone długości i typy kolumn to radze składować wszystko w jednej tabeli.
Siła bazy leży w relacjach więc nie jest to zabieg dobry bo porównywalnie można składować dane w pliku. Miałem trochę do czynienia z Oraclem XE i jedynym plusem tego rozwiązania że będziesz posiadał potężny zasób narzędzi do operacji na danych. Myślę że z czasem kiedy dostrzeżesz zależności pomiędzy to założysz relacje, ustadaryzujesz i podzielisz na tabele. Najważniejsze jest to aby nie dopuścić do zbędnej redundancji składowanych danych. Na początek, na podstawie tego co napisałeś, proponuje wyodrębnienie zakresu danych(2 miesięcznych) do bezpośrednich obliczeń do oddzielnej tabeli (bufora). Tak samo rocznych. To przyśpieszy operacje. Powodzenia |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 20:31 |