использование p4.net в службах Reporting Services 2008 R2 - PullRequest
1 голос
/ 28 июня 2011

Я использую MS SQL Server Reporting Services 2008 R2 для создания отчетов.

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

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

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

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

Большое спасибо за вашу помощь, пожалуйста, задайте любой вопрос для разъяснения.

Приветствия

Анархистский гик

Ответы [ 2 ]

1 голос
/ 29 июня 2011

Можете ли вы определить, больше всего времени уходит на команду describe или diff2?Часть describe может быть оптимизирована путем чтения данных из реляционной базы данных, если вы реплицируете метаданные с помощью P4toDb.

0 голосов
/ 30 июня 2011

У меня есть предложение предварительно рассчитать размер изменения и сохранить его в атрибуте в ревизии файла. Вы можете использовать недокументированную команду p4 attribute.

PS> p4 help undoc

    attribute -- Set per-revision attributes on revisions (unsupported)

    p4 attribute [ -e -f -p ] -n name [ -v value ] files...

        Sets a user-managed attribute 'name' to 'value' on opened files.
        If -v isn't given the attribute is cleared (if set).

        Attributes can only be viewed with 'p4 fstat'.

        The -e flag indicates the 'value' is in hex.

        The -f flag sets the attribute on submitted files.

        The -p flag creates an attribute whose value will be propagated
        when the file is opened with 'p4 add', 'p4 edit', or 'p4 delete'.

PS> p4 help undoc

    Unsupported or obsolete Perforce commands and options:
...

    p4 fstat [ -Oacedhiz ] [ -A pattern ]
        The -Oa flag shows attributes set by 'p4 attribute'.  The -Oae flag
        shows the attribute values encoded as hex.  The -Od flag outputs the
        digest of the attribute.  The -Oc flag outputs the path, revision and
        type of the server archive file (requires 'admin' privilege). The
        -Oz flag outputs the path and revision of any lazy copies (requires
        'admin' privilege).  The -Oh flag outputs the size, digest and any
        selected attributes of the synced revision rather than the head
        revision. The -Oi flag outputs extra (debugging) information about
        the attributes.  The -A pattern flag restricts attributes to those
        matching 'pattern'.
...