Как стать автором
Обновить
10
0

Разработчик приложений баз данных, DBA

Отправить сообщение

Реализация индикатора производительности запросов, хранимых процедур и триггеров в MS SQL Server. Автотрассировка

Время на прочтение25 мин
Количество просмотров14K

Предисловие


Администратору баз данных рано или поздно захочется иметь индикатор производительности, который бы показывал все ли хорошо с запросами. Также известно, что запуск Профайлера на целые сутки существенно загружает систему, и поэтому не может быть оптимальным решением в базе данных, которая используется 24x7.

Так как же определять состояния запросов? И как запускать трассировку при обнаружении проблем с запросами без участия человека?

В данной статье приведу реализацию индикатора производительности запросов, хранимых процедур и триггеров, а также их использование для запуска трассировки.
Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии12

Проблема с периодически долго выполняемыми запросами в MS SQL Server

Время на прочтение4 мин
Количество просмотров92K

Предисловие


Есть информационная система, которую я администрирую. Система состоит из следующих компонент:

1. База данных MS SQL Server
2. Серверное приложение
3. Клиентские приложения

Данные информационные системы установлены на нескольких объектах. Информационная система активно и круглосуточно используется одновременно от 2-х до 20-ти пользователей на каждом объекте. Поэтому нельзя выполнять регламентные работы все и сразу. Т е приходится дефрагментацию индексов размазывать на целый день, а не одним махом все нужные фрагментированные индексы дефрагментировать. Аналогично и с другими работами.

Автообновление статистики выставлено в свойствах самой базы данных. Также статистика обновляется по дефрагментированному индексу.
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии73

Притча про синхронную репликацию и том, как от неё избавиться

Время на прочтение4 мин
Количество просмотров7.5K

Вводная


Предположим, что мы настроили асинхронную репликацию на двух хостах с PostgreSQL. С какой проблемой могут столкнуться потенциальные пользователи? На мой взгляд самой очевидной является отставание реплики от ведущего мастера. Не страшно, если юзер (или его клиентское приложение) открыло BEGIN. В этот момент может разорваться соединение, и все незакомиченные изменения будут откачены.
Но возможна ситуация, когда ведущая СУБД выдаст пользователю COMMIT, резко упадёт, а на слейв не успеет дойти подтверждение транзакции. Тогда при восстановлении реплики эти данные попадут под ROLLBACK (так как на самом деле на ведомую ноду передаются не конечные данные, а вся последовательность действий), а пользователь будет ошибочно считать, что его данные были успешно сохранены.
Читать дальше →
Всего голосов 16: ↑12 и ↓4+8
Комментарии4

Half-HA cluster PostgreSQL на Windows 2012

Время на прочтение5 мин
Количество просмотров12K

Благодарность


Спасибо тебе, Хабр, за то, что ты есть и за те прекрасные часы которые я проводил в тебе! Спасибо, отважные хаброписатели, за статьи высокого качества, тонкого юмора и широкого кругозора. Только благодаря вам и Марь Ивановне (которая меня в первом классе научила читать) я добился серьёзных успехов в ИТ, а теперь хочу поделиться историей, когда нестандартное мышление помогло решить идиоматическую задачку от заказчика.

Вступление


Некоторое время назад я работал над проприетарным продуктом. Этот софт хранил свои данные во внешней СУБД. Первоначально работа осуществлялась с MS SQL, однако позже специально для пользователей «я только *nix-подобные системы ставлю» сделали совместимость с PostgreSQL. Тут взяли меня для решения задач класса «база данных упала — нужно восстановить по журналам транзакций».

В один прекрасный день команда поехала реализовывать очередной проект. Первоначально было оговорено, что на объекте уже есть два сервера Windows 2012, на которых будет развёрнут отказоустойчивый кластер MS SQL. Однако в последний момент у заказчика денег на инстансы не хватило, и мне было поручено ставить рostrge'совые БД, а так же как-то решить задачу отказоустойчивости. Спасибо сообществу разработчиков рostgres, которые скомпилировали установщик для Windows. Задачи:
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии5

OpenCV и обработка изображений

Время на прочтение7 мин
Количество просмотров40K
Доброе утро, дамы и господа. Внимательные читатели заметили, что на российском рынке вновь проклюнулись переводные книги на тему компьютерного зрения. Нас также не могла не заинтересовать следующая книга:


Поскольку технологии компьютерного зрения в значительной степени завязаны и на Python, и на C++, мы подобрали статью с разбором задачи и кодом на обоих языках. Кроме того, искренне надеемся, что девушка под катом вам понравится.
Читать дальше →
Всего голосов 23: ↑22 и ↓1+21
Комментарии13

Как я стал радиолюбителем и зарегистрировал своё первое РЭС

Время на прочтение4 мин
Количество просмотров61K


Хочу рассказать вам свою историю, как сам того не ожидая, стал радиолюбителем 3 категории.

Я заядлый рыбак и поохотиться не прочь. Еще с детства мой отец посвятил меня во все тонкости охоты и рыбалки, брал меня с собой и в Астрахань, и в Сибирь периодически.

В очередной раз с приятелем мы махнули к родне, в прекрасный город Братск. Мой дядя настоящий сибиряк и знаток тех таёжных краёв. Чтоб координировать свои действия, решили мы купить себе рации. Я остановил свой выбор на недорогом китайском аппарате. Спецы говорят, что и цена нормальная, и качество связи сносное. Ну я её на «али» и заказал.
Читать дальше →
Всего голосов 64: ↑61 и ↓3+58
Комментарии162

PostgreSQL. Как правильно хранить котов или история одной миграции

Время на прочтение7 мин
Количество просмотров25K
История взята из реального проекта. Но поскольку реальный проект слишком скучный (и под NDA), в этой статье используется упрощенный пример.

Жил-был один проект. И была у него база данных. И была в базе таблица для хранения, ну, скажем, котов. Вот такая:
CREATE TABLE cats (
    id serial,
    cname varchar(20),
    ctype varchar(20),
    primary key(id)
);

Все довольно просто: у каждого кота есть id, имя и некий тип.

Конечно, у нас были бизнес-требования к котам и их типам. Например, мы точно знали, что у нас есть типы big furry, neko и sudden danger. Предполагали, что могут появиться типы long tail и sleeper-eater. Но мы ожидали, что требования будут меняться. И пока не известно, какие в итоге понадобятся типы. Поэтому использовали тип данных varchar(20).
Читать дальше →
Всего голосов 54: ↑51 и ↓3+48
Комментарии28

Сенсорная кнопка с подсветкой из Китая для DIY поделок

Время на прочтение1 мин
Количество просмотров36K


Девай-с, приобрел на Китайском сайте, так ради интереса. Сенсорная кнопка представляет собой полностью законченное устройство, построенное на специализированной микросхеме фирмы atmel AT42QT1012. Представляющая из себя одноканальный емкостной сенсор.
Читать дальше →
Всего голосов 23: ↑18 и ↓5+13
Комментарии32

Самодельный электронный альтиметр-вариометр-пищалка (3.3-вольтовая версия)

Время на прочтение3 мин
Количество просмотров28K
Существенно переработал свой проект альтиметра-вариометра с подачей звуковых и световых сигналов.

image
Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии32

Создаем приложение на JavaScript с помощью React Native

Время на прочтение27 мин
Количество просмотров156K
В этом уроке мы будем изучать React Native – фреймворк от компании Facebook для создания нативных приложений под iOS и Android. У него много общего с другим очень популярным фреймворком от Facebook – React Javascript, который предназначен для построения декларативных пользовательских интерфейсов.


Читать дальше →
Всего голосов 33: ↑30 и ↓3+27
Комментарии54

Полная энергетическая автономия или как выжить с солнечными батареями в глубинке (часть 4. Сделано в России)

Время на прочтение6 мин
Количество просмотров119K


В России есть вся инфраструктура и собственные средства для построения солнечной электростанции в конкретно взятом хозяйстве. Более того, вся необходимая электроника, да и солнечные батареи производятся у нас самостоятельно и все это отлично работает. После экспериментов с ноунеймом, брендовым европейским китаем и прочей техникой, я решил обратиться к российским разработчикам техники для автономки и на себе испытать эти устройства. Первым попал на тест гибридный инвертор МАП HYBRID v.1 24В: 4.5 кВт , а следом за ним пойдет производительный солнечный MPPT-контроллер.



Даёшь свет!
Всего голосов 43: ↑37 и ↓6+31
Комментарии87

Как я программирую на Python

Время на прочтение1 мин
Количество просмотров40K
Часто с началом нового проекта программист не в состоянии увидеть полную картину — он не знает с чего начать, где получить информацию, сколько ее получить, при этом есть шанс засесть за документацией надолго пока не пропадет желание что-либо делать. Я относительно часто делаю проекты «для души» в ранее незнакомых областях, например, программировал микроконтроллеры, делал свой segway, проектировал на ПЛИС свой микропроцессор, делал плагины под Counter-Strike, софт к купюроприемникам и другие проекты, в которых на старте был абсолютным нулем.



А недавно...
Всего голосов 40: ↑34 и ↓6+28
Комментарии21

Полезные трюки PostgreSQL

Время на прочтение3 мин
Количество просмотров197K


В мануале есть всё. Но чтобы его целиком прочитать и осознать, можно потратить годы. Поэтому один из самых эффективных методов обучения новым возможностям Postgres — это посмотреть, как делают коллеги. На конкретных примерах. Эта статья может быть интересна тем, кто хочет глубже использовать возможности postgres или рассматривает переход на эту СУБД.
Читать дальше →
Всего голосов 55: ↑55 и ↓0+55
Комментарии28

Как посчитать всё на свете одним SQL-запросом. Оконные функции PostgreSQL

Время на прочтение5 мин
Количество просмотров577K

Я с удивлением обнаружил, что многие разработчики, даже давно использующие postgresql, не понимают оконные функции, считая их какой-то особой магией для избранных. Ну или в лучшем случае «копипастят» со StackOverflow выражения типа «row_number() OVER ()», не вдаваясь в детали. А ведь оконные функции — полезнейший функционал PostgreSQL.
Попробую по-простому объяснить, как можно их использовать.


Читать дальше →
Всего голосов 75: ↑73 и ↓2+71
Комментарии54

Маршрутизация в Mac OS при VPN подключении

Время на прочтение2 мин
Количество просмотров105K
Появилась как-то задача подключатся по VPN к рабочей сети, чтобы иметь доступ к внутренним ресурсам.
Средствами Мака это можно сделать создав VPN подключение и 2 варианта:
1. поставить галочку «Слать весь трафик через VPN подключение»
2. статически прописать статически route add -net 192.168.10.0/24 192.168.44.1, где 192.168.10.0/24 — сеть в которой находятся компьютеры на работе, 192.168.44.1 VPN шлюз к которому я подключаюсб.

Итак после каждого подключения нужно делать вторую манипуляцию, так как общий доступ в интернет ограничен и скорость не ахты. Или задача состоит в том чтобы ходить на сайты (например youtube) через более быстрый канал VPN…

Решение ниже
Всего голосов 27: ↑20 и ↓7+13
Комментарии32

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность