Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Диаграмма Ганта. КАК?)  [new]
Mazay2142
Member

Откуда:
Сообщений: 23
Доброй пятницы,

подскажите пожалуйста, как создать диаграмму Ганта, используя средства MS SQL Server 2017 для данных типа


Имя пользователя 1 | время начала сессии | время завершения сессии
Имя пользователя 2 | время начала сессии | время завершения сессии
Имя пользователя 3 | время начала сессии | время завершения сессии
...


+Пример диаграммы Ганта:
Картинка с другого сайта.
29 июн 18, 12:40    [21531027]     Ответить | Цитировать Сообщить модератору
 Re: Диаграмма Ганта. КАК?)  [new]
aleks222
Member

Откуда:
Сообщений: 846
Это вам в форум по mspaint.exe
29 июн 18, 12:43    [21531038]     Ответить | Цитировать Сообщить модератору
 Re: Диаграмма Ганта. КАК?)  [new]
Mazay2142
Member

Откуда:
Сообщений: 23
aleks222,
SQL.RU
Диаграммы Ганта широко применяются в планировании и управлении. В утилите MSSQLServerAuditor они используются для эффективного контроля регулярных заданий.

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


Откуда делаю вывод, что, как-то можно это всё реализовать через MS SQL
29 июн 18, 12:52    [21531082]     Ответить | Цитировать Сообщить модератору
 Re: Диаграмма Ганта. КАК?)  [new]
Mazay2142
Member

Откуда:
Сообщений: 23
Мне просто поставили задачу, сказали, можно.
А вот с ссылкой на sql.ru я, видать, что-то не так понял...
Пятница...)))
29 июн 18, 12:54    [21531094]     Ответить | Цитировать Сообщить модератору
 Re: Диаграмма Ганта. КАК?)  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 4534
Mazay2142, это задача клиентского приложения (репортинговой системы). Какую используют у вас? SSRS?
29 июн 18, 12:56    [21531104]     Ответить | Цитировать Сообщить модератору
 Re: Диаграмма Ганта. КАК?)  [new]
Mazay2142
Member

Откуда:
Сообщений: 23
buser
Mazay2142, это задача клиентского приложения (репортинговой системы). Какую используют у вас? SSRS?


Единственное, что я вижу, связанное с репортами - это такая картина
29 июн 18, 13:23    [21531194]     Ответить | Цитировать Сообщить модератору
 Re: Диаграмма Ганта. КАК?)  [new]
Mazay2142
Member

Откуда:
Сообщений: 23
не выходит приложить файл

К сообщению приложен файл. Размер - 73Kb
29 июн 18, 13:25    [21531199]     Ответить | Цитировать Сообщить модератору
 Re: Диаграмма Ганта. КАК?)  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5156
Mazay2142
buser
Mazay2142, это задача клиентского приложения (репортинговой системы). Какую используют у вас? SSRS?


Единственное, что я вижу, связанное с репортами - это такая картина


+ выполните скрипт и узнаете, где находится ваш SSRS (hostname)
select 
	db_name(dbid) [db]
	,loginame
	,hostname
	,program_name 
	,count(1) [connections]
from sysprocesses 
where db_name(dbid) in ('ReportServer','ReportServerTempdb')
group by db_name(dbid)
	,loginame
	,hostname
	,program_name 
29 июн 18, 13:34    [21531226]     Ответить | Цитировать Сообщить модератору
 Re: Диаграмма Ганта. КАК?)  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30701
Mazay2142
SQL.RU
В утилите MSSQLServerAuditor они используются для эффективного контроля регулярных заданий.
Откуда делаю вывод, что, как-то можно это всё реализовать через MS SQL
Отсюда вывод, что в клиентском приложении "MSSQLServerAuditor" использовали диаграммы Ганта. Использовали программисты, реализовав их на каком то языке программирования клиентских приложений
Mazay2142
Единственное, что я вижу, связанное с репортами - это такая картина
Это базы для репортинг сервиса, SSRS
Они появляются, если эта функциональность выбрана при установке MS SQL. А используется она у вас или нет - из картинки непонятно.
29 июн 18, 13:38    [21531231]     Ответить | Цитировать Сообщить модератору
 Re: Диаграмма Ганта. КАК?)  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30701
Mazay2142
Мне просто поставили задачу, сказали, можно.
Это нужно было понять из контекста. Может, вам поставили сделать расчёт данных для диаграммы Ганта, и вывести его в удобном для использования рекордсете?
Это трудно понять, по такой скупой формулировке задания. Сделать отчёт, веб-приложение, подготовить данные - понять можно как угодною.
29 июн 18, 13:40    [21531238]     Ответить | Цитировать Сообщить модератору
 Re: Диаграмма Ганта. КАК?)  [new]
Eleanor
Member

Откуда:
Сообщений: 2618
Mazay2142,

Если умеете работать с питоном, можно в нем любую диаграмму нарисовать.
29 июн 18, 13:40    [21531239]     Ответить | Цитировать Сообщить модератору
 Re: Диаграмма Ганта. КАК?)  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5156
alexeyvg
Они появляются, если эта функциональность выбрана при установке MS SQL.

не совсем так
они появляются при конфигурировании SSRS через Report Server Configuration Manager
29 июн 18, 13:47    [21531252]     Ответить | Цитировать Сообщить модератору
 Re: Диаграмма Ганта. КАК?)  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5156
Mazay2142
aleks222,
SQL.RU
Диаграммы Ганта широко применяются в планировании и управлении. В утилите MSSQLServerAuditor они используются для эффективного контроля регулярных заданий.

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


Откуда делаю вывод, что, как-то можно это всё реализовать через MS SQL


можно, если использовать таблицу с данными и pivot

+ пример
with 
  data as 
  (select 'Work 1' [work],'Jan 1 2018' [dt],'*' [val] union all 
  select 'Work 1','Jan 2 2018','*' union all 
  select 'Work 1','Jan 3 2018','*' union all 
  select 'Work 1','Jan 4 2018','*' union all 
  select 'Work 2','Jan 2 2018','*' union all 
  select 'Work 2','Jan 3 2018','*' union all 
  select 'Work 2','Jan 4 2018','*' union all 
  select 'Work 2','Jan 5 2018','*' union all 
  select 'Work 3','Jan 5 2018','*' union all 
  select 'Work 3','Jan 6 2018','*' union all 
  select 'Work 3','Jan 7 2018','*' union all 
  select 'Work 4','Jan 8 2018','*' union all
  select 'Work 4','Jan 9 2018','*' union all 
  select 'Work 4','Jan 10 2018','*' union all 
  select 'Work 4','Jan 11 2018','*' union all 
  select 'Work 5','Jan 4 2018','*' union all 
  select 'Work 5','Jan 5 2018','*' union all 
  select 'Work 6','Jan 5 2018','*' union all 
  select 'Work 7','Jan 7 2018','*' union all 
  select 'Work 7','Jan 8 2018','*' union all 
  select 'Work 7','Jan 9 2018','*' 
  )
  select 
	ROW_NUMBER() over (order by work) [N]
	,work
	,[Jan 1 2018],[Jan 2 2018],[Jan 3 2018],[Jan 4 2018],[Jan 5 2018],[Jan 6 2018],[Jan 7 2018],[Jan 8 2018],[Jan 9 2018],[Jan 10 2018],[Jan 11 2018] 
  from data 
  pivot 
  (max(val) for dt in ([Jan 1 2018],[Jan 2 2018],[Jan 3 2018],[Jan 4 2018],[Jan 5 2018],[Jan 6 2018],[Jan 7 2018],[Jan 8 2018],[Jan 9 2018],[Jan 10 2018],[Jan 11 2018]  )) p
29 июн 18, 13:51    [21531262]     Ответить | Цитировать Сообщить модератору
 Re: Диаграмма Ганта. КАК?)  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30701
komrad
alexeyvg
Они появляются, если эта функциональность выбрана при установке MS SQL.

не совсем так
они появляются при конфигурировании SSRS через Report Server Configuration Manager
Странно... Вот у меня на ПК на SQL Server 2016 эти 2 базы подняты, хотя я точно его не поднимал. Таблицы в базе ReportServer пустые
29 июн 18, 13:56    [21531276]     Ответить | Цитировать Сообщить модератору
 Re: Диаграмма Ганта. КАК?)  [new]
Eleanor
Member

Откуда:
Сообщений: 2618
komrad
alexeyvg
Они появляются, если эта функциональность выбрана при установке MS SQL.

не совсем так
они появляются при конфигурировании SSRS через Report Server Configuration Manager

Если при установке была выбрана дефолтная опция Install and configure, то они появляются сразу.
Если была выбрана опция Install Only, то появятся после настройки в Report Server Configuration Manager.
29 июн 18, 14:20    [21531334]     Ответить | Цитировать Сообщить модератору
 Re: Диаграмма Ганта. КАК?)  [new]
DaniilSeryi
Member

Откуда:
Сообщений: 1663
Mazay2142,

может, эта статья поможет?

[url=]www.sql.ru/blogs/decolores/1885[/url]
29 июн 18, 15:11    [21531453]     Ответить | Цитировать Сообщить модератору
 Re: Диаграмма Ганта. КАК?)  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
Mazay2142, чисто в качестве шутки (пользоваться таким методом не советую, лучше на клиентской части рисовать):

select  tbl.Userid
    ,   (   select  case when dateadd(day, number, '20180101') between tbl.DateFrom and tbl.DateTo then '0' else '_' end as 'data()'
            from    master..spt_values as sv 
            where   sv.type = 'P' 
                and sv.number < 365
             for xml path (''))
from    (values(1, cast('20180101' as date), cast('20180201' as date)), (2, '20180115', '20180605'), (3, '20180606', '20181001')) as tbl(Userid, DateFrom, DateTo)
29 июн 18, 15:52    [21531596]     Ответить | Цитировать Сообщить модератору
 Re: Диаграмма Ганта. КАК?)  [new]
tunknown
Member

Откуда:
Сообщений: 748
Minamoto
Mazay2142, чисто в качестве шутки (пользоваться таким методом не советую, лучше на клиентской части рисовать):
Тепло. Чтобы стало горячо, нужно через for xml сгенерировать .svg, положить в FILESTREAM, и оттуда раздавать на сайт.
29 июн 18, 16:39    [21531716]     Ответить | Цитировать Сообщить модератору
 Re: Диаграмма Ганта. КАК?)  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
tunknown, спасибо за идею.

PoC:

declare @tbl table (Id int identity (1, 1), UserName nvarchar(100), DateFrom date, DateTo date);
insert into @tbl
        (UserName, DateFrom, DateTo)
values('Randomuser1', cast('20180101' as date), cast('20180201' as date)), ('Randomuser2', '20180115', '20180605'), ('Randomuser1', '20180606', '20181001');

WITH XMLNAMESPACES (default 'http://www.w3.org/2000/svg')  
select  (select count(id) from @tbl as t) * 30 + 15 as [@height]
    ,   500 as [@width]
    ,   (   select  130 as [@x1]
                ,   130 as [@x2]
                ,   0 as [@y1]
                ,   (select count(id) from @tbl as t) * 30 + 15 as [@y2]
                ,   'stroke:black;stroke-width:1;' as [@style]
            for xml path('line'), type)
    ,   (   select  10 as [@x]
                ,   tbl.Id * 30 as [@y]
                ,   UserName as 'data()'
            from    @tbl as tbl
            for xml path('text'), type)
    ,   (   select  135 + datediff(day, '20180101', DateFrom) as [@x1]
                ,   135 + datediff(day, '20180101', DateTo) as [@x2]
                ,   tbl.Id * 30 - 5 as [@y1]
                ,   tbl.Id * 30 - 5 as [@y2]
                ,   'stroke:black;stroke-width:10;' as [@style]
            from    @tbl as tbl
            for xml path('line'), type)
from    (values (1)) as svg (t)
for xml path('svg'), type
29 июн 18, 17:59    [21531951]     Ответить | Цитировать Сообщить модератору
 Re: Диаграмма Ганта. КАК?)  [new]
ShIgor
Member

Откуда: Нижний Новгород
Сообщений: 2298
в полной красе:
Visualize the timeline of your SQL jobs using Google graph and email
+ пример
Картинка с другого сайта.
30 июн 18, 00:45    [21532468]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить