Как может я представлять шаблонную производительность в Шаблоне:: Инструментарий?

Один подход был бы ниже.

 WITH T1( Code, Date, Flag) AS
 (
 SELECT Code, DateFrom, 1 AS Flag
 FROM dbo.Test
 UNION ALL
 SELECT Code, dateTo, -1 AS Flag
 FROM dbo.Test
 ), T2 AS
 (
 SELECT *, SUM(Flag) OVER (PARTITION BY Code ORDER BY Date ROWS UNBOUNDED PRECEDING) AS ActiveMembershipCount
 FROM T1
 ), T3 AS
 (
 SELECT *, LAG(ActiveMembershipCount,1,0) OVER (PARTITION BY Code ORDER BY Date) AS PrevActiveMembershipCount
 FROM T2
 ), T4 AS
 (
 SELECT *, ROW_NUMBER() OVER (PARTITION BY Code ORDER BY Date)-1 AS RN
 FROM T3
 WHERE 0 IN (ActiveMembershipCount, PrevActiveMembershipCount)
 )
 SELECT Code, MIN(Date), MAX(Date)
 FROM T4
 GROUP BY Code, RN/2
 HAVING MIN(Date) <= '2018-07-01' AND MAX(Date) >= '2018-12-31'

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

12
задан Adam Bellaire 19 September 2009 в 23:23
поделиться

1 ответ

Оказывается что поиск с помощью Google для шаблона:: профилирование инструментария приводит к лучшему результату, статье с ноября 2005 Randal Schwartz. Я не могу скопировать и вставить любую статью здесь из-за авторского права, но достаточным, чтобы сказать, что Вы просто получаете его источник и используете его в качестве модуля после шаблона, как так:

use Template;
use My::Template::Context;

И Вы будете произведены как это к STDERR, когда Ваш сценарий будет работать:

-- info.html at Thu Nov 13 09:33:26 2008:
cnt clk   user    sys  cuser   csys template
  1   0   0.06   0.00   0.00   0.00 actions.html
  1   0   0.00   0.00   0.00   0.00 banner.html
  1   0   0.00   0.00   0.00   0.00 common_javascript.html
  1   0   0.01   0.00   0.00   0.00 datetime.html
  1   0   0.01   0.00   0.00   0.00 diag.html
  3   0   0.02   0.00   0.00   0.00 field_table
  1   0   0.00   0.00   0.00   0.00 header.html
  1   0   0.01   0.00   0.00   0.00 info.html
  1   0   0.01   0.01   0.00   0.00 my_checklists.html
  1   0   0.00   0.00   0.00   0.00 my_javascript.html
  1   0   0.00   0.00   0.00   0.00 qualifier.html
 52   0   0.30   0.00   0.00   0.00 referral_options
  1   0   0.01   0.00   0.00   0.00 relationship_block
  1   0   0.00   0.00   0.00   0.00 set_bgcolor.html
  1   0   0.00   0.00   0.00   0.00 shared_javascript.html
  2   0   0.00   0.00   0.00   0.00 table_block
  1   0   0.03   0.00   0.00   0.00 ticket.html
  1   0   0.08   0.00   0.00   0.00 ticket_actions.html
-- end

Обратите внимание, что блоки, а также отдельные файлы перечислены.

Это, по моему скромному мнению, намного более полезно, чем Шаблон модуля CPAN:: Таймер.

15
ответ дан 2 December 2019 в 20:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: