Биты и байты.

Биты и байты.

четверг, 10 марта 2016 г.

Плюшки SQL Server 2014.

Если лень читать можно сразу посмотреть небольшое видео

1. In-Memory OLTP
Новый механизм хранения данных в SQL Server.
Размещение таблиц в оперативной памяти  In-Memory OLTP для  устранения блокировок доступа к данным и ускорения чтения данных используется также при большом количестве подключений к таблице.
При перезапуске SQL Server после сбоя или запланированного завершения работы для устойчивых, оптимизированных для памяти таблиц повторно создаются экземпляры, чтобы вернуть их в состояние перед завершением работы или сбоем.
Существует два параметра устойчивости для оптимизированных для памяти таблиц:

1.Чтобы воспользоваться механизмом необходимо добавить в базу файл группу in-memory

ALTER DATABASE imoltp ADD FILEGROUP imoltp_file_group
    CONTAINS MEMORY_OPTIMIZED_DATA;

2.Создать таблицу с опцией MEMORY_OPTIMIZED=ON

CREATE TABLE [dbo].[InMemTable] (
  c1 INT NOT NULL PRIMARY KEY NONCLUSTERED HASH WITH (BUCKET_COUNT=1000000),
  c2 NCHAR(48) NOT NULL
) WITH (MEMORY_OPTIMIZED=ON, DURABILITY = SCHEMA_AND_DATA);
GO

3.Создать  специальную процедуру которая будет использовать механизм NATIVE_COMPILATION для ускорения работы процедуры  с таблицами in-memory

CREATE PROCEDURE [dbo].[usp_InsertData]
  @rowcount INT,
  @c NCHAR(48)
  WITH NATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNER
  AS
  BEGIN ATOMIC
  WITH (TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N'us_english')
  DECLARE @i INT = 1;
  WHILE @i <= @rowcount
  BEGIN
    INSERT INTO [dbo].[inMemTable2](c1,c2) VALUES (@i, @c);
    SET @i += 1;
  END
END
GO

пятница, 4 марта 2016 г.

Дать права к представлению без права на таблицу.

В ситуации когда пользователь должен видеть только определенные данные из таблицы или не хочется заморачиваться с правами на таблицу
пригодится использование механизма цепочек владения.



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

Создаем схему указываем владельца dbo, т.к будем использовать  в  представлениях и процедурах объекты данной схемы, таким образом включается цепочка наследования.
! Необходимо указать правильного владельца сразу иначе цепочка оборвется и придется пересоздавать схему.
CREATE SCHEMA [MDM] AUTHORIZATION [dbo]

Далее создаем представление, которое использует например  таблице TEST в схеме dbo

CREATE VIEW MDM.TESTVIEW AS
SELECT *
FROM dbo.TEST

Даем права нашему пользователю на селект и  грант, без гранта работать не будет.

GRANT SELECT , VIEW DEFINITION ON MDM.TESTVIEW TO [TestUser] WITH GRANT OPTION

Проверяем доступ  к представлению и убеждаемся что все работает


пятница, 26 февраля 2016 г.

Функция для подсчета количества рабочих часов

Бывает иногда полезной такая функция,  рассчитывает количество рабочих часов между датами

Написал функцию давно, но выручала не раз.

DECLARE @startdate datetime
DECLARE @enddate DATETIME

SET @startdate = '2015-04-28 12:33:19.000'
SET @enddate = '2015-04-30 09:45:20.000'


SELECT [dbo].[F_РасчетЧистогоРабочегоВремени] (@startdate, @enddate) 

Результат расчета в часах

понедельник, 21 сентября 2015 г.

Полезные советы при создании аналитических панелей.

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

Шаг 1.  Создайте образ панели.
 Для начала ответьте себе на вопросы.

- Какую мысль я хочу донести людям, в чем ценность этой панели ? 
(от этого будет зависеть наполнение панели информацией)
- Кто будет пользоваться этой информацией, кто целевая аудитория ? 
(насколько они технически грамотны, знакомы с терминологией  от этого будет зависеть              сложность панели, количество данных и графиков )
- Какой тип панели это будет ?
 (стратегическая, оперативная, в виде истории,  детализация)

Подсказка : представьте вашу панель создайте ее в голове , если есть возможность нарисуйте набросок карандашом.



Шаг 2.  Выберите макет.
От выбора макета зависит количество информации которое можно разместить на панели , следите за тем чтобы было достаточно места между блоками
Иначе возникнет ощущение визуальной перегрузки данных, используйте макеты с большим количеством блоков только в крайнем случае.


Подсказка: В интернете есть разные варианты макетов на выбор, попробуйте создать свой макет в каком-нибудь онлайн дизайнере или используя Gridstack.js

понедельник, 7 сентября 2015 г.

Ассоциативность в Excel

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


В дополнение полезные ссылки

Визуализация данных на 3D-карте с помощью Power Map (GeoFlow) для Excel

5 инструментов в помощь аналитику


пятница, 31 июля 2015 г.

Создание библиотеки в Sharepoint.

Для создания такой библиотеки нужно совсем немного времени.
Сделаем это на Sharepoint 2013.


Для начала устанавливаем себе SharePoint Designer, он облегчит нам некоторые рутинные действия.
Запускаем дизайнер, открываем наш сайт,  
1. Создаем на сайте новую библиотеку документов.

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

2. Создаем тип контента (это набор столбцов и параметров который можно использовать многократно в разных списках), по умолчанию в типе 2 столбца имя и название.
Наследуемся от типа контента документ, можно наследоваться вообще от любого типа SharePoint и это плюс.
3. Далее создаем необходимые столбцы, которые будем использовать в нашем типе контента, доступны следующие типы столбцов.
Переводчики конечно отожгли, вариант тут имеется ввиду выбор.
У столбца так же есть значения по умолчанию, которые при желании можно определить.

среда, 15 июля 2015 г.

Панель, она и в SQL панель!

Для тех кто давно задумывался об удобном инструменте анализа производительности своего SQL сервера, есть хорошая новость!
Кроме стандартных отчетов в SSMS,  оказывается уже есть на базе отчётов SSRS от MS готовый пакет отчетов под шикарным названием «панель» производительности.
Что удобно, для выполнения этих отчетов не нужны права супер одмина.

Если внимательно присмотреться то не всегда этот отчет выдает адекватные цифры, так что будьте готовы к этому. Как говорится доверяй, но проверяй.
Ссылка на отчеты  и горячее видео!

После установки отчеты можно найти здесь


Сама панель выглядит как то так.
Установка проста  на сервер устанавливаем необходимые процедуры из файла setup.sql в базу msdb
В файле найдете все необходимые скрипты которые потом можно использовать по отдельности при желании.
При желании разворачиваем все отчеты на сервере отчетов.
И настраиваем подписки.


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

P\S: Использование скриптов в анализе никто конечно не отменял

About