W najprostszym przypadku, gdy wstawimy nowy wiersz do tabeli (i transakcja zostanie zatwierdzona), będzie ona widoczna dla wszystkich kolejnych transakcji. Zobacz xmax, czy w tym przykładzie jest 0: CREATE TABLE vis ( id serial, is_active boolean ); INSERT INTO vis (is_active) VALUES (FALSE); SELECT ctid, xmin, xmax, * FROM vis; …
Mam 3 stoły: Ludzie Poczta Lubi Kiedy projektuję model ER, ma on cykliczną zależność: 1: N Ludzie -------- <Post 1: N Opublikuj ---------- <Polubienia 1: N Ludzie -------- <Lubi Logika jest następująca: 1 osoba może mieć wiele postów. 1 post ma wiele polubień. 1 osoba może polubić wiele postów (utworzona …
Muszę monitorować aktywność użytkowników w naszych bazach danych. Ustawiłem następujące parametry w postgresql.conf: log_min_duration_statement = 0 log_connections = on log_disconnections = on log_line_prefix = '%t %a %d %h %u |' Zdaję sobie jednak sprawę, że większość plików dziennika jest wypełniona instrukcjami wykonywanymi przez postgresużytkownika, które są używane przez skrypty, które …
Problem Mamy zapytanie jak SELECT COUNT(1) FROM article JOIN reservation ON a_id = r_article_id WHERE r_last_modified < now() - '8 weeks'::interval AND r_group_id = 1 AND r_status = 'OPEN'; Ponieważ często dochodzi do przekroczenia limitu czasu (po 10 minutach), postanowiłem zbadać problem. Dane EXPLAIN (ANALYZE, BUFFERS)wyjściowe wyglądają następująco: Aggregate (cost=264775.48..264775.49 …
Zainicjuj dane testowe: CREATE EXTENSION IF NOT EXISTS pgcrypto; CREATE TABLE docs (data JSONB NOT NULL DEFAULT '{}'); -- generate 200k documents, ~half with type: "type1" and another half with type: "type2", unique incremented index and random uuid per each row INSERT INTO docs (data) SELECT json_build_object('id', gen_random_uuid(), 'type', (CASE …
Czytałem tę książkę, która tak mówi Baza danych zakłada, że Indexed_Col IS NOT NULL obejmuje zbyt duży zakres, aby był użyteczny, więc baza danych nie będzie prowadzić do indeksu z tego warunku. Rozumiem, że książka ma ponad 10 lat, ale okazała się już całkiem przydatna - używając instrukcji zebranych z …
Mam kilka trudnych do obliczenia zmaterializowanych widoków, które chcę mieć możliwość tworzenia kopii zapasowych i przywracania przy użyciu rzeczywistych przechowywanych danych, a nie poprzez ponowne obliczanie. Czy jest to możliwe w PostgreSQL 9.4? (alternatywą jest tworzenie rzeczywistych tabel, ale trudniej je „odświeżyć”)
Moja aplikacja bazy danych uruchamia wiele różnych zapytań. Mam ustawiony log_min_duration_statementna 1000. Ale zapytań zalogowany nie zawsze są powolne, większość czasu po prostu potrwać kilka ms. Czy można uzyskać statystyki wszystkich zapytań i jak często trwały dłużej niż 1000 ms?
Według Craiga Ringera : Chociaż zwykle dobrym pomysłem jest utworzenie indeksu w kolumnach kluczy obcych po stronie odniesienia (lub w tym), nie jest to wymagane. Każdy indeks dodać spowalnia operacje DML lekko w dół, więc płacisz koszt wykonania na każdym INSERT, UPDATElub DELETE. Jeśli indeks jest rzadko używany, nie warto …
Wydaje się, że wykonywanie pełnotekstowych zapytań w tej bazie danych (przechowywanie biletów RT ( Request Tracker )) trwa bardzo długo. Tabela załączników (zawierająca dane pełnotekstowe) ma około 15 GB. Schemat bazy danych jest następujący, ma około 2 milionów wierszy: rt4 = # \ d + załączniki Tabela „public.attachments” Kolumna | …
Mam demona gry bez rozwidlania napisanego w Perlu , który używa zapytań acync do zapisywania statystyk graczy w bazie danych PostgreSQL 9.3. Ale kiedy muszę przeczytać coś z bazy danych (np. Jeśli gracz zostanie zbanowany lub jeśli ma status VIP), korzystam z zapytań synchronicznych. To powoduje, że gra zatrzymuje się …
Używam następujących rekurencyjnych CTE jako minimalnego przykładu, ale ogólnie optymalizator musi używać domyślnych „zgadywanych” liczności dla rekurencyjnych CTE: with recursive w(n) as ( select 1 union all select n+1 from w where n<5 ) select * from w; /* n --- 1 2 3 4 5 */ explain analyze with …
Próbowałem użyć skryptu Nagios do monitorowania liczby połączeń z bazą danych w bazie danych Postgres i doszedłem do tego problemu: są one liczone jako aktualnie otwarte połączenia i mierzone co 5 minut. SELECT sum(numbackends) FROM pg_stat_database; Mimo to wydaje się, że brakuje dużej liczby krótkotrwałych połączeń, więc statystyki są dalekie …
Czy ktoś może mi pomóc porównać te zapytania i wyjaśnić, dlaczego zapytanie PostgreSQL wykonuje się w niecałe 2000 ms, a zapytanie agregacyjne MongoDB zajmuje prawie 9000 ms, a czasem nawet 130 000 ms? PostgreSQL 9.3.2 on x86_64-apple-darwin, compiled by i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build …
Próbuję przygotować zapytanie z PHP, takie jak: pg_prepare($con, "prep", "select * from test where tid in ($1)"); a następnie uruchom go za pomocą: $strpar = "3,4,6,8,10"; pg_execute($con, "prep", array($strpars)); Problem polega na tym, że nie mogę przekazać szeregu wartości zbudowanych, ponieważ preparat oczekuje stałej liczby parametrów. Czy jest jakiś sposób, …
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.