PostgreSQL: сортировка без учёта регистра
Мы переводим свои некоторые продукты с «Оракла» на «Постргрес» и постоянно сталкиваемся
test=# SELECT * FROM (SELECT 'Ба' UNION ALL SELECT 'бб' UNION ALL SELECT 'Бв') _ ORDER BY 1;
?column?
----------
Ба
бб
Бв
(3 строки)Ни в одном описании опыта такого же перехода я
test=# SELECT * FROM (SELECT 'Ба' AS str UNION ALL SELECT 'бб' UNION ALL SELECT 'Бв') _ ORDER BY str COLLATE "C";
str
-----
Ба
Бв
бб
(3 строки)Либо преобразовать строку к бинарному типу:
test=# SELECT * FROM (SELECT 'Ба' AS str UNION ALL SELECT 'бб' UNION ALL SELECT 'Бв') _ ORDER BY str::bytea;
str
-----
Ба
Бв
бб
(3 строки)Правда в последнем случае неясно сможет ли «Постгрес» использовать индекс — мы пока таких испытаний не проводили.
Комментарии 9
select
lower(str collate «default»)
from (select 'Ба' collate «C» str union select 'бб' union select 'Бв') _
order by str;
Ну, или вылечить голову топором:
initdb --
Из
http://www.postgresql.org/docs/9.4/static/ … -json.html
http://thebuild.com/presentations/pg-as-no …
Для нас
И очень огорчает отсутствие AWR report.
Не совсем. Предположим ты зашёл в мониторинг кластера и увидел, что базе 30 минут назад было плохо. Как узнать что это было? Можно снять AWR report с базы за это время и посмотреть что там происходило — какие запросы выполнялись, как работали буферы, чем была занята система I/O, если перечислять, список огромный выйдет. Данных гигантского количество.
За ссылки спасибо — посмотрю!