HQbird 2024R2 Update 10 - szczegółowe informacje o nowościach
Co nowego w HQbird 2024R2 Update 10
Widoki zmaterializowane (nowa funkcja w 5.0)
HQbird zawiera teraz pełne wsparcie dla widoków zmaterializowanych - nowego typu obiektu bazy danych, który łączy definicję widoku z fizycznym przechowywaniem danych w zwykłej tabeli.
Przegląd
Widok zmaterializowany (MV) jest definiowany za pomocą standardowego zapytania SQL, które silnik wykorzystuje do wypełnienia bazowej tabeli MV wierszami danych. W przeciwieństwie do zwykłych widoków, dane MV są trwale przechowywane na dysku i mogą być indeksowane. Instrukcje DML (INSERT, UPDATE, DELETE) nie są dozwolone bezpośrednio na widokach MV - dane muszą być aktualizowane za pomocą nowego polecenia REFRESH.
Tworzenie i zarządzanie widokami zmaterializowanymi
CREATE [OR ALTER] MATERIALIZED VIEW- tworzy lub zastępuje widok MV z opcjonalnym początkowym ładowaniem danych (WITH DATA/WITH NO DATA).ALTER MATERIALIZED VIEW- modyfikuje definicję widoku MV; automatycznie usuwa wszystkie istniejące indeksy.RECREATE MATERIALIZED VIEW- usuwa istniejący widok (zwykły lub zmaterializowany) o tej samej nazwie i tworzy nowy widok MV.DROP VIEW- używany do usuwania widoku zmaterializowanego (brak osobnego poleceniaDROP MATERIALIZED VIEW).- Na widokach MV można tworzyć indeksy dowolnego rodzaju. Ograniczenia i wyzwalacze nie są obsługiwane.
Konwersja między typami widoków
ALTER MATERIALIZED VIEW ... TO NOT MATERIALIZED- konwertuje widok MV na zwykły widok. Wszystkie indeksy i dane są usuwane.ALTER VIEW ... TO MATERIALIZED- konwertuje zwykły widok na widok zmaterializowany. Obiekty zależne nie są naruszane.
Odświeżanie danych widoku zmaterializowanego
Nowa instrukcja REFRESH MATERIALIZED VIEW aktualizuje zawartość widoku MV. Jest to polecenie DDL - wykonanie jest odroczone do momentu zatwierdzenia bieżącej transakcji. Dostępne są cztery tryby:
-
Pełne przeładowanie (tryb wyłączny) -
REFRESH MATERIALIZED VIEW- Dezaktywuje indeksy, usuwa wszystkie istniejące dane, przeładowuje z zapytania MV, ponownie aktywuje indeksy.
- Najszybsza opcja, gdy zmieniło się wiele wierszy.
- Wymaga wyłącznej blokady tabeli MV.
- W przypadku błędu ładowania danych: nowo załadowane dane są usuwane, indeksy są ponownie aktywowane jako puste.
- W przypadku błędu aktywacji indeksu: dotknięty indeks pozostaje nieaktywny; dane i inne indeksy nie są naruszane. Błędy budowy indeksu są zgłaszane jako ostrzeżenia.
-
Aktualizacja współbieżna -
REFRESH MATERIALIZED VIEW CONCURRENTLY- Wymagana blokada wyłączna - zapytania współbieżne na widoku MV są dozwolone podczas odświeżania.
- Używa algorytmu scalania z dwoma uporządkowanymi kursorami: jeden dla bieżących danych MV, drugi dla wyników zapytania MV.
- Wstawia nowe wiersze, aktualizuje zmienione wiersze, usuwa usunięte wiersze - wszystko pod kontrolą transakcji.
- Wymaga unikalnego indeksu na widoku MV.
- Preferowany, gdy potrzebny jest dostęp współbieżny lub gdy od ostatniego odświeżenia zmieniło się niewiele wierszy.
- Uwaga: jeśli zapytanie MV zawiera
ORDER BY, kolejność wierszy może nie zostać zachowana po współbieżnym odświeżeniu.
-
Usunięcie wszystkich danych -
REFRESH MATERIALIZED VIEW DROP DATA- Usuwa wszystkie dane MV i zawartość indeksów. Przydatne do zwolnienia miejsca na dysku. Wymaga wyłącznej blokady.
-
Odświeżanie kaskadowe - dodanie
CASCADEdo dowolnej z powyższych form- Odświeża wszystkie widoki MV, od których zależy dany widok MV, w poprawnej kolejności zależności.
- Każdy widok MV jest przetwarzany tylko raz.
CONCURRENTLY CASCADEwymaga, aby wszystkie dotknięte widoki MV miały unikalny indeks.DROP DATA CASCADEusuwa dane wszystkich dotkniętych widoków MV.- Nazwy dotkniętych widoków MV i kolejność odświeżania są zgłaszane jako ostrzeżenia w wektorze statusu przed zatwierdzeniem.
Kopia zapasowa i przywracanie (gbak)
- Kopia zapasowa: dane MV nie są przechowywane w pliku kopii zapasowej, tak samo jak w przypadku zwykłych widoków - nie jest wymagana żadna specjalna obsługa.
- Przywracanie: wszystkie widoki MV są automatycznie odświeżane na końcu procesu przywracania, w poprawnej kolejności zależności.
- Nowy przełącznik gbak
-NO_MATVIEWS(może być skrócony do-NO_M) - pomija odświeżanie MV podczas przywracania. - Odpowiednia opcja Services API:
isc_spb_res_no_matviews. - Ważne: kopia zapasowa zawierająca widoki MV nie może zostać przywrócona w wersji Firebird, która nie obsługuje widoków MV. Użyj
ALTER MATERIALIZED VIEW ... TO NOT MATERIALIZEDprzed wykonaniem kopii zapasowej podczas migracji do starszej wersji.
Znane ograniczenia / planowane prace
- Wsparcie replikacji - jeszcze nie zaimplementowane.
- Wyzwalacze DDL - jeszcze nie zaimplementowane.
- Sprawdzanie praw dostępu - jeszcze nie zaimplementowane.
- Komunikaty błędów - w trakcie przeglądu.
Kopia zapasowa i odzyskiwanie
- Zadanie weryfikacyjnej kopii zapasowej: dodano rotacyjne usuwanie przed kompresją; współczynniki obliczania miejsca na dysku są teraz konfigurowalne.
- Zadanie nBackup: poprawiono logikę pomijania; algorytm zmiany nazwy dziennika zmieniono na atomową zmianę nazwy z ponawianiem, aby zapobiec częściowym zmianom nazw.
- Katalog kopii zapasowej i szablon nazwy pliku dla zadań BRZ są teraz konfigurowalne:
backup-directory- umożliwia określenie katalogu docelowego dla każdej bazy danych i zadania.backup-name- umożliwia zdefiniowanie szablonu nazwy pliku, np.brr_{0,date,yyyyMMdd_HH-mm-ss}.fbk.- Dodano walidator wejściowy: sprawdza poprawność nazwy katalogu i tworzy katalog, jeśli nie istnieje.
Kopia zapasowa w chmurze / transfer plików
- Dodano obsługę przesyłania plików przez protokół Socket w zadaniu cloudbackup (filetransfer).
- Usunięto opcję selektywnej kompresji plików dla poszczególnych segmentów - kompresja plików dla odpowiednich zadań jest teraz zawsze włączona.
Trace
- Dodano
connection_idjako dodatkowe pole w konfiguracji trace. - Przetwarzanie raportów trace: dodano grupowanie i filtrowanie bez rozróżniania wielkości liter według nazwy procesu.
VSS Writer
- Dodano dodatkowe logowanie diagnostyczne - informacje o stanie bazy danych są teraz rejestrowane, w tym rozmiar bazy danych, data i czas oraz dane wyjściowe
gstat -h.
Interfejs webowy
- Ulepszenia lokalizacji: poprawiono tłumaczenia i dostosowano algorytmy lokalizacji w konsoli webowej.
- Dodano wizualny element separatora z tekstem etykiety do okien dialogowych webowych - umożliwia logiczne grupowanie elementów formularza.
- Zmieniono strategię unieważniania pamięci podręcznej dla zasobów po stronie klienta (strony internetowe, JS, CSS), aby zapobiec używaniu przez przeglądarki nieaktualnych plików po aktualizacji.
Konfiguracja
- Zaktualizowano nazwy pól autoryzacji serwera (
sysdba/owner,serviceAPI). - Dodano zarezerwowany parametr konfiguracyjny dla ustawienia języka/locale po stronie serwera (Java).
- Poprawiono domyślne pliki konfiguracyjne, aby odpowiadały nowym domyślnym ustawieniom dla zadań transferu plików:
- Port zmieniony z 8721 na 8722.
- Domyślny użytkownik zmieniony z
admin2/admin3nasocketuser. - Ustawienie siły hasła ujednolicono na silne hasło we wszystkich konfiguracjach.
- Podczas rejestracji pliku licencyjnego KA, określanie prefiksu protokołu HTTP/HTTPS w polu hosta nie jest już wymagane.
Poprawki błędów
- Naprawiono fałszywy krytyczny alert wyzwalany, gdy baza danych ma tymczasowo wyłączone wszystkie zadania.
- Naprawiono błąd podczas pobierania listy aktywnych sesji trace dla systemów, w których skonfigurowany użytkownik SYSDBA nie ma uprawnień do wyświetlania listy sesji trace.
- Naprawiono błąd w komponencie deszyfrowania innej firmy, który nie obsługiwał poprawnie ścieżek zakodowanych w UTF-8. Uwaga: dopóki usługa mon/trace nie zostanie zaktualizowana i przebudowana, znaki UTF-8 w ścieżkach plików lub baz danych mogą nadal powodować błędy w danych wyjściowych mon/trace.
- Naprawiono problem w module obsługi konfiguracji replikacji, który nieprawidłowo zachowywał klucze z pustymi wartościami.
- Naprawiono obsługę
journal_archive_commanddla Firebird 4 i nowszych (zgodnie z poprawką w firebird/firebird PR #8381). - Naprawiono błędy w generatorze konfiguracji
dg2fbcc.jari jego kodzie wywołania.
Instalator i kompilacja
- Instalator systemu Windows zaktualizowany o poprawione skrypty i logikę.
- Zaktualizowano pliki binarne bibliotek klienckich.
- OpenSSL zaktualizowany do nowszej wersji.
- Dodano warunkowe gałęzie kodu dla wariantów kompilacji specyficznych dla produktu.
- Dodano podpisywanie plików w procesie kompilacji instalatora.
Infrastruktura lokalizacji po stronie serwera
Zaimplementowano mechanizm lokalizacji komunikatów tekstowych po stronie serwera (Java). Pliki locale są przygotowane, ale nie zostały jeszcze wypełnione tłumaczeniami, a mechanizm nie został jeszcze aktywowany w produkcji. Ta infrastruktura jest przeznaczona do przyszłej lokalizacji komunikatów serwera.