Вопросы с тегом «postgresql»

Все версии PostgreSQL. Добавьте дополнительный тег для конкретной версии, такой как postgresql-11, если этот контекст важен.

1
Почему индекс джина в столбце jsonb замедляет мой запрос и что я могу с этим сделать?
Инициализируйте тестовые данные: 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 …

1
Когда привилегии перечислены в \ l, а когда нет?
Когда права доступа перечислены в списке \ l, а когда нет? Права доступа, указанные \ l, могут измениться после предоставления и отзыва: $ createuser -EP my_readonly $ psql development development=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------------------------+----------+----------+-------------+-------------+----------------------- development | vagrant …

3
Может ли PostgreSQL использовать нулевые значения в своих индексах?
Я читал эту книгу, в которой говорится, что База данных предполагает, что Indexed_Col IS NOT NULL охватывает слишком большой диапазон, чтобы быть полезным, поэтому база данных не будет приводить к индексу из этого условия. Я понимаю , что эта книга более чем 10 лет, но он уже доказал весьма полезным …

1
Можно ли сделать резервную копию и восстановить материализованное представление с его данными?
У меня есть некоторые сложные вычисления материализованных представлений, которые я хочу иметь возможность создавать резервные копии и восстанавливать, используя фактические сохраненные данные, а не путем повторного вычисления. Возможно ли это в PostgreSQL 9.4? (альтернатива заключается в создании реальных таблиц, но их сложнее «обновить»)

2
Получить статистику медленно выполняющихся запросов
Моя база данных запускает много разных запросов. Я установил log_min_duration_statementна 1000. Но запросы, зарегистрированные там, не всегда медленные, в большинстве случаев они занимают всего несколько мс. Можно ли получить статистику по всем запросам, и как часто они занимают более 1000 мс?

2
Как определить затраты / выгоды от добавления индекса?
По словам Крейга Рингера : Хотя обычно хорошей идеей является создание индекса для (или включая) столбцов внешнего ключа ссылочной стороны, это не обязательно. Каждый добавляемый вами индекс немного замедляет работу DML, поэтому вы платите за производительность за каждый INSERT, UPDATEили DELETE. Если индекс используется редко, он может не иметь смысла. …

2
Медленный полнотекстовый поиск из-за крайне неточных оценок строк
Полнотекстовые запросы к этой базе данных (хранение билетов RT ( Request Tracker )) выполняются очень долго. Таблица вложений (содержащая полнотекстовые данные) составляет около 15 ГБ. Схема базы данных выглядит следующим образом, это около 2 миллионов строк: rt4 = # \ d + вложения Таблица "public.attachments" Колонка | Тип | Модификаторы …

2
Вернуть запись с функцией PL / pgSQL - чтобы ускорить запрос
У меня есть не разветвляющийся игровой демон, написанный на Perl , который использует асинхронные запросы для записи статистики игрока в базу данных PostgreSQL 9.3. Но когда мне нужно что-то прочитать из базы данных (например, если игрок забанен или у игрока есть VIP-статус), тогда я использую синхронные запросы. Это останавливает игру …

1
Как «намекнуть» на кардинальность рекурсивного CTE?
Я использую следующий рекурсивный CTE в качестве минимального примера, но в целом оптимизатор должен использовать «угаданные» кардинальные значения по умолчанию для рекурсивных 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 …

2
Как правильно контролировать количество соединений с базой данных PostgreSQL?
Я попытался использовать сценарий Nagios для мониторинга количества соединений с базой данных в базе данных Postgres, и я столкнулся с этой проблемой: они считаются открытыми в настоящее время и измеряются каждые 5 минут. SELECT sum(numbackends) FROM pg_stat_database; Тем не менее, это, кажется, пропускает огромное количество недолговечных соединений, поэтому статистика далека …

1
PostgreSQL PREPARE-запрос с параметрами IN ()
Я пытаюсь подготовить запрос из PHP, как: pg_prepare($con, "prep", "select * from test where tid in ($1)"); и затем выполните это с: $strpar = "3,4,6,8,10"; pg_execute($con, "prep", array($strpars)); Проблема в том, что я не могу передать ряд значений, созданных, так как приготовление ожидает фиксированное количество параметров. Есть ли способ сделать …

1
Производительность MongoDB против PostgreSQL с 5,5 миллионами строк / документов
Может ли кто-нибудь помочь мне сравнить эти запросы и объяснить, почему запрос PostgreSQL выполняется менее чем за 2000 мс, а совокупный запрос MongoDB занимает почти 9000 мс, а иногда и 130 тыс. Мс? 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 …

3
Как сделать небольшое обновление PostgreSQL в Windows, например, с 9.3.0 до 9.3.1?
Каков рекомендуемый способ выполнить незначительное обновление PostgreSQL, например, с 9.3.0 до 9.3.1, используя встроенный установщик Windows Enterprise DB? Должен ли я удалить сначала или просто установить поверх существующей установки? Текущая установка была выполнена с помощью postgresql-9.3.0-1-windows-x64.exe. Теперь я хочу обновить с помощью postgresql-9.3.1-1-windows-x64.exe.

1
Получение нескольких запросов с «показом уровня изоляции транзакции» в pg_activity
Я использую сервер PostgreSQL для своего производственного использования. Когда я запускаю запрос как select * from pg_stat_activity на моем сервере я получаю 98% запросов, таких как SHOW TRANSACTION ISOLATION LEVEL и мой сервер принимает только 100 подключений, поэтому я не могу продолжать дальше. Почему это происходит? Как я могу заблокировать …

4
Как сохранить уникальный счетчик на строку с PostgreSQL?
Мне нужно сохранить уникальный (для каждой строки) номер редакции в таблице document_revisions, где номер редакции ограничен документом, поэтому он не уникален для всей таблицы, только для соответствующего документа. Я изначально придумал что-то вроде: current_rev = SELECT MAX(rev) FROM document_revisions WHERE document_id = 123; INSERT INTO document_revisions(rev) VALUES(current_rev + 1); Но …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.