Вопросы по 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. Оптимизация запросов, реализация, подходы и т.д.

Оптимизатор

Уже голову сломал в борьбе с этим оптимизатором.

create temp table _ps_ as select 2026::integer as device_id,
'14.02.2012'::timestamp as t1, '15.02.2012'::timestamp as t2;

explain
SELECT sd.* FROM _ps_, sens_data AS sd
WHERE sd.device_id = _ps_.device_id AND sd.time_stamp BETWEEN _ps_.t1 AND _ps_.t2

Hash Join (cost=5152217.36..10815889.00 rows=24742899 width=29)
Hash Cond: (_ps_.device_id = sd.device_id)
Join Filter: ((sd.time_stamp >= _ps_.t1) AND (sd.time_stamp <= _ps_.t2))
-> Seq Scan on _ps_ (cost=0.00..19.90 rows=990 width=20)

join нескольких таблиц

есть три таблицы
Таблица1, Таблица2 (foreignkey на таблицу1), Таблица3(foreign key на таблицу2).
Необходимо построить запрос, в котором будут содержаться данные из таблицы3 и id из таблицы1.
делаю так:
select таблица3.данные, таблица1.id
from
таблица3
left join
таблица2 left join таблица1 on таблица2.fk=таблица1.id
on таблица3
а как дальше - не могу понять.

Требуется помощь в написании функции на Plsql

Добрый день!
Люди, разбирающиеся в plsql, помогите, пожалуйста, решить следующую задачку:
Исходные данные:
таблица А:
код | цена

таблица B:
Nгруппы | нижняя граница группы, руб | верхняя граница группы

Задача: нужно построить запрос, в котором напротив цены будет стоять номер группы, к которой она относится.
query A:
код | цена | Nгруппы |

Тип поля XML. Непонятен вопрос с кодировками

Всем добрый день. Столкнулся с проблемой.
Есть база в кодировке 1251, есть таблица с полем XML, туда нужно положить данные в кодировке UTF-8 что бы перекодирования не произошло. Все делают на C++ через libpq. Отправляю данные через параметры.
После того как зову PQExecParams он мне говорит что невалидная xmlка. Формат данных - бинарный выставлен, если выставить текстовый то вообще скажет что переконвертировать из 1251 в utf8 не может. В чем проблема или куда копать в какую сторону

XMLка самая обычная:

<?xml version="1.0" encoding="UTF-8"?>
<Файл Версия="1.0">

Задачи и pgagent

Есть система, которая каждый месяц в 00:00 на основе pgadmin выполняет определённые действия с базой. Проблема случилось в том, что на данное время pgagent был не запущен и задача не выполнилась.

Как можно выполнить прошедшую задачу???

Анализ статистики от RADIUS

Hi all!

Есть задача учёта статистики по логам RADIUS.
Что учитываем: просмотры людьми телеканалов.
На данный момент это ведётся в таком формате:
Начался просмотр - делается INSERT со сведениями - id сессии, id юзера, момент начала, id канала и прочее.
Закончился - UPDATE заполняет этой записи момент конца просмотра.
Как я понял, это практически дефолтные настройки sql-логгирования RADIUS.
Таблица выглядит так.

radius-# \d radacct
                                            TABLE "public.radacct"

COPY и многострочные тексты

Всем привет.
Начал перетягивать базу из одной СУБД в Postgres. Столкнулся с одной странной проблемой. Когда делаю COPY просто строки с разделителем \t - то все в порядке. А когда пытаюсь сделать вставку строки, в которой есть произвольной длины текст - получаю ошибку, так как СУБД видимо считает, что там, где еще продолжается текст должен быть следующий столбец.

Структура Бд

Здравствуте.
не могу решить следуюшие проблему. Допустим сушествует несколько баз даных с разноми названиями, но с одно структорой. Как осушествить автоматическое обновление структуры базы данных????? к примеру добавить в таблицу одно поле или добавить новую таблицу.

Неожиданные различия PostgresSQL 9.0 и PostgreSQL 9.1

В 9.0 была написана строка SET SEARCH_PATH TO '_89809840', public;
если схема отсутствовала то Postgre отвечал ошибкой с кодом
3F000 - invalid_schema_name.
Но в 9.1 стал на ту же строку отвечать ошибкой
22023 - invalid_parameter_value.
Зачем разработчики изменили поведение инструкции?

Создание 20 000 схем по 80 таблиц в каждой в одной базе

Решили проверить сколько схем сможем создать в одной базе данных. В каждой схеме 80 таблиц, и в одной таблице каждой схемы 50 000 записей.
Сервер на котором стоит Postgres имеет 16 Гб памяти, и на нем стоит CentOS.

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

Back to top

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