Информация

Последние записи

Теги


Блоги


Записи из всех блогов на Sql.ru


Что можно узнать из плана запроса

Картинка с другого сайта.

В 2014 году, я начал вести англоязычный блог www.queryprocessor.com, пообещав не забрасывать свой первоначальный блог и продолжать публиковать в нем статьи по мере сил и возможностей. С тех пор, мужественно и последовательно, за 2.5 года я не опубликовал в нем ни одной статьи. Хватит это терпеть!

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

А пока, первая заметка Что можно узнать из плана запроса, в которой рассматриваются как некоторые старые, но полезные элементы плана, так и улучшения в этой области для последних релизов SQL Server.

Приятного чтения.
автор: SomewhereSomehow добавлено: 16 янв 17 просмотры: 152, комментарии: 0



Простой способ повысить качество решений

Блог: Gandjustas' blog
image
Наверное каждый из вас сталкивался с такими решениями для SharePoint: решение вроде работает, но постоянно возникают какие-то проблемы, данные не сохраняются, странные падения при, казалось бы, безобидных операциях. Тестеры тратят много времени на такое решение, но исправление одних багов порождает другие. Развернуть такое решение на production ферме оказывается очень сложно, поддержка превращается в ад. Знакомо, да?

Занимаясь разработкой правил анализа кода для SPCAF (http://spcaf.com), я нашел способ как быстро исправить такую ситуацию.

Найдите все блоки кода такого вида:
try
{
    //код
}
catch(Exception e)
{
    //здесь что угодно, кроме throw;
}

Впишите throw; в блок catch. Важно что в catch указывается базовый Exception, а не конкретный тип исключения.
Ваше приложение начнет падать и вам надо будет исправить все найденные ошибки, не убирая throw. Я такое уже проделывал много раз на разных проектах, и это давало очень положительных результат. Даже если программисты будут сопротивляться, не допускайте убирания throw.

Исследование


Для тестирования правил я собрал около 70 .wsp файлов, решений SharePoint. Большинство из них — проекты, в которых мне довелось участвовать, и я прекрасно знаю все проблемы, которые возникали при разработке. Я посчитал плотность блоков try\catch без throw и вот что получилось:
  • Самое проблемное решение — 1 блок на 36 строк. То есть почти каждый значимый метод был завернут в такойtry\catch.
  • Решения ...
читать дальше...
автор: gandjustas добавлено: 15 янв 17 просмотры: 75, комментарии: 0



Встреча сообщества по SharePoint и Office 365

Блог: Gandjustas' blog

26 октября 2016 года состоится встреча сообщества по SharePoint и Office 365. Поделимся опытом реализации проектов на SharePoint и расскажем про новые возможности Office 365. Встреча пройдет в Microsoft Technology Center на Лесной. Начало встречи в 18:00.

В программе доклады:

PowerApps и Flow в Office 365
Михаил Бондаревский
В докладе покажу новые инструменты в Office 365 — PowerApps и Flow. Они станут доступны в ближайшем релизе Office 365. PowerApps — конструктор приложений мобильных приложений, который использует SharePoint Online как источник данных. Flow — конструктор рабочих процессов, ориентированный на конечных пользователей. 

Конфигурация Release Management в Team Foundation Server 2015 для решений фермы SharePoint 2013/2016
Александр Смотров
В докладе расскажу как автоматизировать сборку и развертывание решений для SharePoint. Как настроить автотесты для решений с помощью агентов Team Foundation Server.

Быстрая разработка и установка пакетов для SharePoint в облаке и на земле
Станислав Выщепан
В докладе расскажу про современные инструменты разработчика SharePoint, которые работают быстро, снижают количество ошибок и автоматизируют рутинные операции. Расскажу как создавать решения на TypeScript в vscode. Как загружать в SharePoint новые версии скриптов с помощью gulp. Как собрать.pnp пакет для установки и установить его в SharePoint Online и SharePoint 2016.

  Для участия обязательна регистрация, иначе вас не пустят в здание.

<script type=...

читать дальше...
автор: gandjustas добавлено: 03 янв 17 просмотры: 182, комментарии: 0



Динамическая безопасность на уровне строк (row level security)

Блог: СУБД Caché
На DC возник вопрос относительно того, можно ли для той или иной строки таблицы определять права всегда в runtime, и если да, то как.
Отвечаю: можно, и довольно просто.

читать дальше...
автор: servit добавлено: 19 дек 16 просмотры: 1081, комментарии: 0



In-Memory tables. Таблицы в памяти - просто.


Начиная с MS SQL Server 2014 Microsoft предоставила к использованию технологию таблиц In-Memory, в 2016 данная технология получила продолжения и улучшения. Технология подразумевает, что определяется таблица, которая оптимизирована для нахождения в памяти сервера, что позволяет повысить производительность обработки данных в данной таблице, за счет быстроты работы данных в памяти и исключения задержек, связанные с вводом\выводом (хотя здесь есть свои нюансы). Постараюсь описать все нюансы и возможности в одной статье, чтобы не искать по разным страницам msdn, немного много, но зато все в одном.


Итак, требования
Чтобы вы могли в MS SQL Server использовать In-Memory таблицы, то должны проверить следующие требования:
-  64 – разрядный MS SQL Server 2014и выше редакции Enterprise, Developer или Evaluation
- достаточное объем самой оперативной памяти для данных и версионности строк, так же это зависит о нагрузки на использования таблиц в памяти
- Необходимо включить быструю инициализацию файлов, т.е предоставить учетной записи MS SQL Server право на «Perform volume maintenance tasks» в локальных политиках сервера. Это требования желательное, в противном случае может сыграть отрицательно на производительность.

Немного теории.

Основным хранилищем для таблиц In-Memory является основная память, т.е вся память находится в памяти. Строки записываются и считываются только из памяти. Для отказоустойчивости данный таблиц дублируются на диск, но можно настроить, чтобы таблица была только в пам...
читать дальше...
автор: dbasimple добавлено: 05 дек 16 просмотры: 827, комментарии: 0



3 причины не верить почасовой ставке

Блог: Gandjustas' blog

За неделю ко мне обратились две компании, предлагали проект на SharePoint и спрашивали какая у нас (vnextsoft) почасовая ставка. Они не говорили какую конкретно задачу надо решать или какой портал сделать, их просто интересовала ставка.

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

1. Почасовая ставка не определяет стоимость проекта

Стоимость проекта - это произведение ставки на количество часов. Ставки варируются в 2-2,5 раза максимум. Количество часов, которое может быть потрачено на решение задачи, легко может отличаться в 3-5 раз. Один раз даже видел разницу в 10 раз.

Это вполне нормально. Алистер Коберн в статье “Магия числа ПИ для руководителей проектов” вывел простую зависимость - если команда новая и проект новый, то оценки нужно умножать на Пи в квадате, что примерно равно 9,87. Опытная команда, которая уже сделала аналогичные проекты, может сделать проект с трудозатратами в 10 раз меньше, чем неопытная. Кроме того, если у компании есть наработки, решающие задачи клиента, то оценка также может быть снижена.

Так что разница в оценках в 3-5 раз - вполне ожидаема. Почасовая ставка меньше влияет на стоимость проекта.

2. Почасовая ставка снижает качество

Если вы выбираете исполнителя с самой низкой ставкой, то вы гарантированно получите самого неопытного исполнителя из всех возможных. Неопытный исполнитель обязательно накосячит...

читать дальше...
автор: gandjustas добавлено: 05 дек 16 просмотры: 869, комментарии: 3



Настройка репликации из MS SQL Server в DB2

Недавно была задача настроить MS SQL Server репликацию на сервер IBM DB2 AS/400, задача получилась непростая и интересная. В процессе настройки репликации было много проблем, описание которых в Интернете было довольно мало. Ниже постараюсь описать проблемы и шаги настройки данной репликации:

Настройку репликации можно разделить на несколько шагов:
1)  Установка драйвера провайдера Microsoft OLE DB Provider for DB2
2)  Настройки на стороне DB2  
3) Получить строку подключения к DB2 AS/400
4) Настройка самой репликации и ее проверка


Имеем:
1) Сервер MS SQL Server 2014 12.0.5000.0 Enterprise Edition
2) Таблицу для репликации с первичным ключом

3) Подписчик в виде сервера IBM DB2 AS/400

Начинаем:

1)      Скачиваем и устанавливаем драйвера DB2OLEDB

К сожалению, найти их в Интернет была проблем, ссылка в поиске вела на сайт Microsoft https://www.microsoft.com/en-us/download/details.aspx?id=29100но там была документации по ним, да и многие ссылки в msdn-е были битые и вели на несуществующие страницы. Драйвера я нашел у себя на сервере, когда –то давно скаченные. Если найдете где они сейчас, сообщите, укажу адрес.
У меня они были версии V3.0
Установка простая, ничего сложного.
После установки имеем кроме провайдера в MS SQL Server, еще и приложение Data Access Tool, которое нам очень пригодится.

2)      Настройки на стороне DB2  

Тут работы администраторы DB2 AS/400, что он ...
читать дальше...
автор: dbasimple добавлено: 29 ноя 16 просмотры: 566, комментарии: 0



Ваши вакансии - отстой или как HR-ам привлекать программистов

Блог: Gandjustas' blog

Этот пост не о технологиях, даже если вы не в курсе что такое SharePoint, то вам это не помешает.

Вчера в моей группе на facebook опубликовали вакансию программиста на SharePoint.
Название изменил, чтобы не делать лишний раз рекламу.

1) Компания: ООО «Рога и копыта» ведущая консалтинговая компания в области управления, обладающая 20-летним опытом создания комплексных информационных систем в строительстве, энергетике, нефтегазовой отрасли и др.

2) Требования к кандидату:
•знание и опыт разработки под платформу Microsoft SharePoint Server 2013/2016 в том числе — Web Parts, Features, Master Pages, Custom Controls, Event Receivers, Timer Jobs, Site / List Templates, Workflow;
•знание основных механизмов администрирования SharePoint (Центр Администрирования, PowerShell), опыт работы с ними;
•проектирование структуры контента решения (коллекции сайтов, сайты, списки, поля списков и т.д.);
•навыки использования и реализованные решения на Server Object model, Client object model и REST API;
•знание T-SQL;
• отличное знание платформы .NET (.Net Framework и языка программирования С#);
• отличное знание веб-технологий, опыт разработки (JavaScript + jQuery, HTML, CSS);
• опыт работы c ASP.NET, WCF;
•опыт участия в коммерческих проектах разработок на базе SharePoint 2010/2013;
•умение диагностировать проблемы в работе ПО, вести общение с клиентами при осуществлении проектирования систем, технического сопровождения;
•опыт выполнять диагностику и отладку решений...

читать дальше...
автор: gandjustas добавлено: 29 ноя 16 просмотры: 924, комментарии: 2



Анализ отчетов AWR

Блог: Oracle SQL
Анализ отчетов AWR


1.Что такое AWR отчеты
2. Для чего используются AWR отчеты
3. Построение AWR отчетов
4. Системные представления AWR репозитория отчетов
5. AWR отчет в формате HTML
6. Основные параметры отчетов AWR
7. На что еще следует обратить внимание!

1. Что такое AWR отчеты

Automatic Workload Repository представляет из себя набор внутренних таблиц словаря данных БД Oracle и специальный фоновый процесс MMON, который появился в версии Oracle10g.
Периодически AWR создает статистическую копию (снимок) и сохраняет информацию в таблицах расположенных в табличном пространстве SYSAUX. По умолчанию регулярный период сбора установлен на 60 минут. Это значение может быть уменьшено до 10 минут при желании. Механизм сбора статистической копии (awr snapshot) установлен в базе данных 10G по умолчанию и в отличии от пакета statspack установки на автоматический сбор информации не требуется.

Скрипт формирования AWR заполняет специальный AWR репозиторий набор таблиц и представлений словаря данных Oracle помощью специального системного процесса NMON.


2.Для чего используются AWR отчеты

Automatic Workload Repository (AWR) используется для сбора статистики производительности, включая:

Время ожидания ресурсов базы данных (foreground и background wait events). Эту статистическую информацию можно использовать для первоначального определения 'узких' мест в производительности базы данных
читать дальше...
автор: Myp3_u_K добавлено: 01 ноя 16 просмотры: 1497, комментарии: 0



Программно открыть или закрыть TcxPopupEdit в TcxVerticalGrid

В cxVerticalGrid может быть строка, где Properties.EditProperties := PopupEdit
Как можно закрыть или открыть программно выпадающее окно.


procedure VerticalGridDropDownRow(vg: TcxVerticalGrid; aRow: TcxEditorRow; aDropedDown: boolean);
Var
  AEdit: TcxPopupEdit;
begin
  vg.SetFocus;
  vg.FocusedRow := aRow;
  vg.ShowEdit;
  if (vg.InplaceEditor <> nil) and (vg.InplaceEditor is TcxPopupEdit) then
  begin
    AEdit := TcxPopupEdit(vg.InplaceEditor);
    AEdit.DroppedDown := False;
  end;
end;


У TcxPopupEditProperties отсутствует метод или свойство, позволяющее открыть/закрыть Popup control.
Popup подразумевает работу только с ним. Нельзя открывать несколько Popup`ов одновременно. При потере фокуса Popup должен закрыться.
автор: X11 добавлено: 25 окт 16 просмотры: 777, комментарии: 0


предыдущие записи