|
/*
xp_regex. A Regular Expressions extended stored procedure for use with Microsoft SQL Server.
Copyright (C) 2003 Dan Farino (dfarino@bigfoot.com)
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "stdafx.h"
#define XP_REGEX_USING_PERF_COUNTERS
#ifdef XP_REGEX_USING_PERF_COUNTERS
using namespace System;
using namespace System::Diagnostics;
public __gc class CPerfCounters
{
public:
static CPerfCounters()
{
// delete the category if it exists
if (PerformanceCounterCategory::Exists( S"xp_regex" ) )
PerformanceCounterCategory::Delete( S"xp_regex" );
CounterCreationDataCollection *ccdCol = new CounterCreationDataCollection();
// split cache hits total
CounterCreationData *ccd = new CounterCreationData(
S"Split Cache Hits",
S"Total split cache hits",
PerformanceCounterType::NumberOfItems32
);
ccdCol->Add( ccd );
// split cache misses total
ccd = new CounterCreationData(
S"Split Cache Misses",
S"Total split cache misses",
PerformanceCounterType::NumberOfItems32
);
ccdCol->Add( ccd );
// cache creations (since it is stored as a WeakReference and may be deleted at any time)
ccd = new CounterCreationData(
S"Split Cache Creations",
S"Total times a new split cache has been created",
PerformanceCounterType::NumberOfItems32
);
ccdCol->Add( ccd );
// total calls
ccd = new CounterCreationData(
S"Total Calls",
S"Total times xp_regex_... has been called",
PerformanceCounterType::NumberOfItems32
);
ccdCol->Add( ccd );
// total calls
ccd = new CounterCreationData(
S"Total Calls/s",
S"Total times xp_regex_... has been called per second",
PerformanceCounterType::RateOfCountsPerSecond32
);
ccdCol->Add( ccd );
// create the category
PerformanceCounterCategory::Create(
S"xp_regex",
S"Monitor the xp_regex Extended Stored Procedure",
ccdCol
);
cacheHitsCounter = new PerformanceCounter( S"xp_regex", S"Split Cache Hits", false );
cacheMissCounter = new PerformanceCounter( S"xp_regex", S"Split Cache Misses", false );
cacheCreateCounter = new PerformanceCounter( S"xp_regex", S"Split Cache Creations", false );
totalCallsCounter = new PerformanceCounter( S"xp_regex", S"Total Calls", false );
totalCallsPerSecCounter = new PerformanceCounter( S"xp_regex", S"Total Calls/s", false );
}
static PerformanceCounter* cacheHitsCounter;
static PerformanceCounter* cacheMissCounter;
static PerformanceCounter* cacheCreateCounter;
static PerformanceCounter* totalCallsCounter;
static PerformanceCounter* totalCallsPerSecCounter;
};
#endif
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.
A list of licenses authors might use can be found here
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.