Вопросы по SQL и другие аспекты работы PostgreSQL

warning: Creating default object from empty value in /var/www/victor/web/pgdocs.ru/data/modules/taxonomy/taxonomy.pages.inc on line 33.
Здесь обсуждаются запросы на SQL в PostgreSQL. Оптимизация запросов, реализация, подходы и т.д.

SQL запросы стали тормозить

Использую СУБД Postgresql, относительно не так давно, SQL запросы стали выполняться намного дольше по времени. Некоторые запросы выполняются в несколько десятков раз дольше.
Провел анализ работы БД (сравнил с данными месячной давности), проблем с памятью или процами нет. Но заметил что время доступа к разделу с БД различается на порядок, что можно с эти сделать, кроме банального VACUUM FULL ANALYZE?

Сравнение составных типов

Создал составной тип:

CREATE TYPE public.full_code AS
(
	class smallint,
	subclass smallint,
	"group" character varying(2),
	subgroup character varying(2),
	sort character varying(2),
	subsort character varying(2)
);

Имеется таблица:
CREATE TABLE public."Documents"
(
    document_id integer NOT NULL,
    document_type_id integer NOT NULL,
    document_name text NOT NULL,
    document_short_name text,
    full_code full_code,
    path_file text);

Пытаюсь сделать такой запрос:

Как заставить Postgres использовать определенный индекс

Есть запрос

SELECT DISTINCT
"Field1"
FROM
"Table"
WHERE "Field2" LIKE 'val1%' AND "Field3" ='val2' 
LIMIT 100

Поле Field1 тип bigint, по нему есть индекс, при выполнении этого запроса он и используется ( Index Scan using "iTable-Field1" on "Table" ).
Поле Filed2 типа text, поле Fileld3 типа bigint. Есть индекс SearchFields составной состоит из поля Field2 с типом операторов text_pattern_ops, и поля Field3. Если убрать из запроса LIMIT 100, то используется Bitmap Index Scan on "iTable-SearchFields". При этом ресурсов тратиться меньше, но времени больше.

Отключение каскадного выполнения триггеров

Здравствуйте!
Я выполняю следующую команду:
INSERT INTO CSM_ACTUAL (SIGN_CODE,CREATE_DATE,CSM_NAME_ROD_CASE,CSM_NAME,CSM_CODE,CSM_NAME_SHORT,FTP_USER_NAME,SESS_ID) VALUES('6767',cast('2018-04-27 12:24:22' AS timestamp),'6565','55665',10104,'56565','ftp_343',17);

С данной командой связан следующий триггер:

CREATE TRIGGER CSM_INS INSTEAD OF INSERT ON CSM_ACTUAL FOR EACH ROW
EXECUTE PROCEDURE "TriggerFunctionCsmIns"();

С триггером связана следующая функция:

CREATE OR REPLACE FUNCTION "TriggerFunctionCsmIns"()
  RETURNS TRIGGER AS $$

Выбор данных с JSONB

Здравствуйте, я не понимаю как сделать это.

есть таблица с полем events jsonb
в нем значения вида

[{"e": 3, "t": 1}, {"e": 4, "t": 2}]
[{"e": 140, "t": 14}, {"e": 4, "t": 2},{"e": 141, "t": 2},]

как выбрать все записи в которых t = 2 ?

Перенос данных из БД Redis. Мониторинг

Всем привет, у меня такая ситуация: нужно осуществить мониторинг данных из бд Redis (ключ-значение). В качестве графической оболочки использую Grafana. Но напрямую из Redis данные в него не выгрузить, как это можно сделать с другими бд, как например с тем же Postgresql. Так что я планирую сейчас переносить данные из Redis в Postgresql, а из него уже я без проблем смогу вытащить данные в Grafana.

Нашёл на Github что-то похожее на перенос данных из Redis в Postgresql.
https://github.com/pg-redis-fdw/redis_fdw

PgAdmin 3 vs 4

Добрый день!
уже в 9.6 изменилась админка - PgAdmin
сильно привык к третьему, пользовался его конструктором запросов.
Не могу найти такой функции в 4-м PgAdmin.
Ее совсем убрали? Или не могу найти?

Каждая транзакция попадает в журнал Windows

Добрый день.

Конфигурация следующая:
Windows Server 2008R2
PostgreSQL 9.4.2-1.1Cx64

При всех отключенных полях в конфиге, связанных с логированием, каждая транзакция пишется в журнал событий Windows (в раздел Приложения). Все попытки сконфигурировать PostgreSQL не дают результата, по-прежнему пишется неимоверное количество событий в секунду.
Нужна помощь! Заранее спасибо!

Конфиг приведу ниже:

# -----------------------------
# PostgreSQL configuration file
# -----------------------------
#
# This file consists of lines of the form:
#
#   name = value
#

Распололжение метаданных в PostgreSQL

Доброго времени суток.
Подскажите пожалуйста, где находятся метаданные о таблицах БД в PostgreSQL?

ВЫБОРКА T_DATE T_NUM

Выборка всего по убыванию значения поля ---T_NUM--

ВЫВЕСТИ ВСЕ ДНИ В АВГУСТЕ С СУММИРОВАНИЕМ ЗНАЧЕНИЕМ -----T_NUM---- ПО ДАТЕ 2009\05\21

ВЫВЕСТИ ТРИ ЗАПИСИ С МАКСИМАЛЬНЫМИ ЗНАЧЕНИЯМИ --T_NUM----

НУЖНА КОНСУЛЬТАЦИЯ.

БЛАГОДАРЮ ЗА РАНЕЕ.

Собранный материал

Back to top

(С) Виктор Вислобоков, 2008-2023