Архивы категорий: Postgre SQL

Single Page Application : ASP.NET MVC .NET Core 2 + Angular 5. Часть 6.

В этой статье я продолжу улучшать тестовый проект. И по плану я буду делать следующие:

  • Изменю структуру проекта, сделаю его похожим на реальное приложение, с несколькими страницами, действиям пользователя, администрированием, авторизацией.
  • После реорганизации проекта, добавлю в него авторизацию на основе токенов OpenID/OAuth2 (используя ASOS)

Это достаточно много работы, несмотря на то, что это всего 2 пункта. Авторизация и аунтефикация обьемные темы. А реарганизация проекта снова вынуждает парвить файлы и добавлять реализацию в уже существующие. Поэтому это снова будет обьемная статья, так что будьте готовы 🙂

Читать далее

Single Page Application : ASP.NET MVC .NET Core + Angular 4. Часть 5.

Новая статья после долгого (вынужденного) перерыва. Это будет уже пятой частью в сери статей о создание одностраничного приложения с использованием ASP.NET MVC .NET Core и Angular 4. Следующим логичным шагом в создании приложения будет добавления авторизации пользователей. Но сначало нужно немного обновить проект. Со времени последней публикации прошло несколько месяцев и за это время произошло несолько событий:

  • Вышел релиз PostgreSQL 10 и pgAdmin 4
  • Вышло обновление .NET Core до версии 2.0
  • Обновилась система авторизации ASOS

Таким образом в данной статье я хочу описать подготовительные работы по обновлению проекта:

  • переведу базу данных на PostgreSQL 10
  • приведу имена таблиц и полей в соответствие с философией PostgreSQL
  • добавлю таблицу пользователей
  • обновим проект до версии .NET Core 2.0
  • перепишу код доступа к БД. Избавлюсь от Entity Framework и буду использовать более эффективный npgsql драйвер
  • вынесу код доступа к БД в отдельный проект
  • реализую обьекты для управления пользователями

Это будет подготовительный этап. В следующей части я займусь непосредственно реализацией авторизации:

  • Добавлю поддержку ASOS в проект для авторизации при помощи токенов OpenID / OAuth2
  • Реализую код для авторизации и создания access_token и refresh_token для работы с Web API
  • Реализую страницы авторизации и добавления новго пользователя в Angular 4
  • Изменю структуру проекта, что бы сделать его более завершенным

Как видите, я собираюсь сделать много изменений, и именно поэтому решил разбить статью на две части. Так будет проще воспринимать новую информацию.
Итак, начнем.

Читать далее

Single Page Application : ASP.NET MVC .NET Core + Angular 4. Часть 4.

Вот я добрался и до новой части в цикле статей о SPA на основе Angular 4 и ASP.NET MVC Core. Как и обещал, в этой части будем реализовывать следующие вещи:

  • добавим поддержку небольшой базы данных PostgreSQL
  • добавим новый HTML Tag Helper для отработки ввода данных

Читать далее

Поиск размера различных объектов в базе данных PostgreSQL

Недавно мне нужно было оптимизировать базу данных на портале дл яобработки данных от устройств мониторинговой сети. Данных там очень много, плюс к ним много различной служебной информации сохраняется, так сказать попутно. И база данных растет очень быстро. Было принято решение проанализировать размеры таблиц и интдексов и оптимизировать их (где то убрать ненужные поля, где то уменьшить количество вставок в таблицу и т.д.). Результатом этой работы стал небольшой список SQL запросов для PostgreSQL базы данных, который я хотел бы сохранить для себя, ну и поделиться со всеми, кому они могут понадобиться.

Читать далее

Настройка AUTOVACUUM на уровне таблицы

То, что AUTOVACUUM крайне полезен для любой базы данных, даже не стоит обсуждать. Его нужно включать обязательно. Но иногда нужно аккуратная настройка AUTOVACUUM на уровне таблиц, а не использовать одинаковые параметры установленные на уровне сервера. Особенно важно это для случаев, когда в базе данных есть таблицы разных размеров. Например одна или несколько намного больше, чем остальные. В таком случае вам нужно настроить AUTOVACUUM отдельно для больших таблиц, что бы иметь лучшую производительность, чем при настройках по умолчанию.

Читать далее

Как узнать, когда таблицы PostgreSQL были обработаны командами VACUUM и ANALYZE?

Эта статья покажет вам, как определить, когда ваши таблицы базы данных были в последний раз обработаны командами VACUUM и ANALYZE. Данный метод подойдет для сервера PostgreSQL версии 8.х и выше.
Читать далее

AUTOVACUUM – и никакой ручной работы

Итак, после небольшого перерыва, связанного с большой загрузкой на основной работе, я смог вернутся к написанию этой статьи, в которой я расскажу про AUTOVACUUM – крайне полезную вещь для поддержки БД в хорошем состоянии без лишней мороки.

Читать далее

Анализируй это — ANALYZE

Анализируй это - ANALYZE

Используйте ANALYZE что бы оптимизировать PostreSQL запросы

VACUUM – это не единственное, что нужно для постоянной поддержки вашей БД в хорошем состоянии. Кроме того, необходимо анализировать базу данных таким образом, чтобы планировщик запросов имел свежую статистику таблицы, которую он мог бы использовать при принятии решения о том, как выполнить SQL запрос. Проще говоря: убедитесь, что вы используете ANALYZE достаточно часто. А почему это так важно, вы узнаете если прочтет эти статью. И так, вперед, анализируем ANALYZE

Читать далее

VACUUM

PostgreSQL :: VACUUM

Со временем многим приходится сталкиваться в работе с большими базами данных, в которых некоторые таблицы особенно часто изменяются – добавляются новые записи, удаляются старые, обновляются существующие. Все это приводит к внутренней фрагментации таблицы. После обновления и удаления появляются пробелы, которые не заполняются. Новые записи добавляются в конец таблицы. Все это приводит к разбуханию и снижению производительности. Читать далее