подписка



RSS  Подписатся на блог



Follow me!  Follow me!

комментарии

поиск

статистика



 

Размещение БД PostgreSQL на другом диске.

clock марта 18, 2013 16:31 by author cya-st

Хорошей практикой для улучшения производительности PostgreSQL, разместить файлы БД на другом диске, особенно эффективно если БД размещена на другом физическом диске, так как при доступе к диску изрядное время занимает не только чтение данных, но и перемещение магнитной головки.

И так решение для Vista/Windows7/Windows8/Windows Server 2012:

  1. Остановите сервис PostgreSQL - Панель Управления -> Администрирование -> Службы. Находите postgresql-x.x. Клик правой кнопкой - Stop;
  2. Теперь можете скопировать папку данных C:\Program Files\PostgreSQL\x.x\data\ в новую папку, для примера в - D:\pg\;
  3. Для новой папки назначаем полные права доступа для NETWORK SERVICE роли;
  4. Отредактируйте реестр. (Win+R) и в текстовом поле наберите команду regedit. Запустится редактор реестра. Переходим в ветку: HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/postgresql-x.x. Клик правой кнопкой мыши по ключу ImagePath - изменить. Изменяете путь к папке, которая во вторых кавычках C:/Program Files/PostgreSQL/9.2/bin/pg_ctl.exe runservice -N "postgresql-9.2" -D "C:/Program Files/PostgreSQL/9.2/data" -w на C:/Program Files/PostgreSQL/9.2/ bin/pg_ctl.exe runservice -N "postgresql-8.4" -D "D:/pg/data" -w;
  5. Почти все готово, теперь можете удалить папку C:\Program Files\PostgreSQL\x.x\data\ и запустить сервис postgresql-x.x.

Готово.





Использование UNION в SQL запросах

clock августа 4, 2012 10:39 by author cya-st

Для объединения двух и более таблиц в результирующий вывод в SQL существует предложение UNION. В отличие от вложенных запросов в UNION запросы никоем образом не влияют друг на друга.

Для примера можно объеденить две таблици в результирующий вывод, таблицу клиентов и таблицу поставщиков, таким образом мы будем иметь список всех фирм которые присутствуют базе (может пригодится для рассылки)  Вы можете поместить многочисленные запросы вместе и объединить их вывод используя предложение UNION. Давайте посмотрим пример:

SELECT Name, Address 
FROM Suppliers 

UNION 

SELECT Name, Address 
FROM Customers

ORDER BY 2;

в результате мы получаем список всех клиентов и поставщиков. Когда два или более запроса подвергаются объединению, их столбцы вывода должны быть совместимы для объединения. Это означает, что каждый запрос должен указывать одинаковое число столбцов и в том же порядке что и первый, второй, третий, и так далее, и каждый должен иметь тип, совместимый с каждым. Кроме того UNION будет автоматически исключать дубликаты строк из вывода. Вы также иожете упорядочить вывод с помощью ORDER BY, но так как в результирующем выводе отсутствуют названия столбцов, то следует задавать номер столбца в GROUP BY.

Надеюсь что статья была Вам полезна.