Używam serwera PostgreSQL do celów produkcyjnych. Kiedy odpalam takie zapytanie select * from pg_stat_activity na moim serwerze otrzymuję 98% takich zapytań SHOW TRANSACTION ISOLATION LEVEL a mój serwer akceptuje tylko 100 połączeń, więc nie mogę kontynuować. Dlaczego to się dzieje? Jak mogę zablokować wszystkie te zapytania?
Jaki jest zalecany sposób wykonania drobnej aktualizacji z PostgreSQL, np. 9.3.0 do 9.3.1, za pomocą instalatora systemu Windows wbudowanego w Enterprise DB? Czy powinienem najpierw odinstalować, czy po prostu zainstalować na istniejącej instalacji? Obecna instalacja została wykonana przy pomocy postgresql-9.3.0-1-windows-x64.exe. Teraz chcę uaktualnić za pomocą postgresql-9.3.1-1-windows-x64.exe.
Muszę zachować unikalny (w wierszu) numer rewizji w tabeli rewizji dokumentu, gdzie numer rewizji jest zawarty w dokumencie, więc nie jest unikalny dla całej tabeli, tylko dla powiązanego dokumentu. Początkowo wymyśliłem coś takiego: current_rev = SELECT MAX(rev) FROM document_revisions WHERE document_id = 123; INSERT INTO document_revisions(rev) VALUES(current_rev + 1); Ale …
Próbujemy obliczyć najbardziej odpowiednią jednostkę miary dla listy substancji, których substancje podano w różnych (ale zgodnych) jednostkach objętości. Tabela przeliczania jednostek Tabela konwersji jednostek przechowuje różne jednostki i ich relacje: id unit coefficient parent_id 36 "microlitre" 0.0000000010000000000000000 37 37 "millilitre" 0.0000010000000000000000000 5 5 "centilitre" 0.0000100000000000000000000 18 18 "decilitre" 0.0001000000000000000000000 34 …
Jaka jest najlepsza praktyka przechowywania metadanych poszczególnych rekordów w bazie danych? Muszę przechowywać typowe dane meta, takie jak czas utworzenia i czas ostatniej aktualizacji dla wielu tabel w mojej bazie danych. Znalazłem kilka różnych rozwiązań: Przechowuj metadane bezpośrednio w tabelach. Plusy: Metadane są bezpośrednio powiązane z rekordami Do pobierania metadanych …
http://www.postgresql.org/docs/9.2/static/transaction-iso.html Tryb powtarzalnego odczytu zapewnia rygorystyczną gwarancję, że każda transakcja widzi całkowicie stabilny widok bazy danych. Jednak ten widok niekoniecznie musi być spójny z niektórymi szeregowymi (pojedynczymi) realizacjami równoczesnych transakcji na tym samym poziomie. Na przykład, nawet transakcja tylko do odczytu na tym poziomie może zobaczyć rekord kontroli zaktualizowany, aby …
Mam mocno zaktualizowaną / dostępną tabelę, w której przechowuję zserializowane obiekty Java. Są w tabeli przez 2-3 godziny (są również aktualizowane w tym okresie), a następnie usuwane. Rozmiar stołu to około 300 MB. Zauważyłem, że jest to bardzo, bardzo często VACUUMed i zastanawiam się, czy zmiana fillfactorpomogłaby?
Spotkałem się z 4 rolami, które utworzyłem: po zmianie hasła dla użytkownika w pgAdmin III za pomocą GUI (1), ten użytkownik nie może się już zalogować. pgAdmin III pokazuje komunikat o błędzie: An error has occurred: Error connecting to the server: FATAL: password authentication failed for user "sam" FATAL: password …
Mam bazę danych PostgreSQL 9.1, w której część obsługuje prowizje agentów. Każdy agent ma swoją własną formułę obliczania wysokości prowizji. Mam funkcję generowania kwoty prowizji, którą powinien otrzymać każdy agent, ale korzystanie z niej staje się niemożliwe, ponieważ liczba agentów rośnie. Jestem zmuszony zrobić kilka bardzo długich instrukcji i powtarzać …
Mam kolumnę bazy danych o nazwie, auto_reviewgdzie jest typ kolumny boolean. Dla tego pola istnieje indeks utworzony za pomocą ActiveRecord ORM. CREATE INDEX index_table_on_auto_renew ON table USING btree (auto_renew); Gdy pytam pola o wartość logiczną, PG używa indeksu zgodnie z oczekiwaniami. EXPLAIN for: SELECT "table".* FROM "table" WHERE "table"."auto_renew" = …
Chcę umożliwić użytkownikom wyszukiwanie produktów w przedziale cenowym. Użytkownik powinien mieć możliwość korzystania z dowolnej waluty (USD, EUR, GBP, JPY, ...), bez względu na walutę ustawioną przez produkt. Cena produktu wynosi 200 USD, a jeśli użytkownik wyszuka produkty kosztujące 100 EUR - 200 EUR, nadal może go znaleźć. Jak zrobić …
Rozważmy następujący przykład (od początku skryptu psql): \c :db_to_run_on TRUNCATE the_most_important_table; -- tried to avoid similarities to anything that exists out there Teraz, jeśli jest to uruchomione przez polecenie psql [connection details] -v db_to_run_on=\'dev_database\' to po prostu działa i użytkownik jest zadowolony. Ale co jeśli zdecyduje się określić -v db_to_run_on=production_database? …
Odkryłem, że piszę: select 'yes' where exists(select * from foo where val=1) and not exists(select * from foo where val<>1); i zastanawiam się, czy istnieje bardziej zwięzły sposób bez poświęcania zbyt dużej czytelności. Znalazłem jeden sposób, który publikuję jako odpowiedź, ale nie jestem do końca z niego zadowolony i byłbym …
W PostgreSQL możesz utworzyć kolumnę ze zmiennymi znakami typu danych (bez precyzji długości) lub tekstem w następujący sposób: ALTER TABLE test ADD COLUMN c1 varchar; ALTER TABLE test ADD COLUMN c2 text; Czy istnieje różnica między tymi dwoma typami danych? Dokumentacja nie jest do końca jasna. Mówią : Jeśli zmienna …
Mam dwie tabele o tej samej strukturze, A i B. Pewna aplikacja jest zapisywana, aby zawsze zapisywała te same dane w obu tabelach. Po dyskusji z kolegą na temat możliwości zaoszczędzenia miejsca na dysku zastanawiam się, czy mysql lub postgresql może tworzyć na stole jako „alias” lub „dowiązanie symboliczne” innego. …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.