Blocking while running reports

  • Hi,

    We have SQL Server 2005 Reporting service on Server A & it's databases ReportServer & ReportServerTemDB are on Server B. From the Application, when users run the reports, I'm getting the below blocking and the reports are hung:

    spidWait TimeTypeResourceCommandSQL UserProgramWin UserCPUI/OHost NameStatusSession SQL

    11618,500LCK_M_UKEY: 10:72057594039435264 (06029ecb4f33)DELETEABC\SSRS$Report ServerSSRS$00SSRSsuspended, blockingCREATE PROCEDURE [dbo].[CleanOrphanedSnapshots]

    @Machine nvarchar(512),

    @SnapshotsCleaned int OUTPUT,

    @ChunksCleaned int OUTPUT,

    @TempSnapshotID uniqueidentifier OUTPUT

    AS

    SET DEADLOCK_PRIORITY LOW

    CREATE TABLE #tempSnapshot (SnapshotDataID uniqueidentifier)

    INSERT INTO #tempSnapshot SELECT TOP 1 SnapshotDataID

    FROM SnapshotData WITH (NOLOCK)

    where SnapshotData.PermanentRefcount = 0

    AND SnapshotData.TransientRefcount = 0

    SET @SnapshotsCleaned = @@ROWCOUNT

    DELETE ChunkData FROM ChunkData INNER JOIN #tempSnapshot

    ON ChunkData.SnapshotDataID = #tempSnapshot.SnapshotDataID

    SET @ChunksCleaned = @@ROWCOUNT

    DELETE SnapshotData FROM SnapshotData INNER JOIN #tempSnapshot

    ON SnapshotData.SnapshotDataID = #tempSnapshot.SnapshotDataID

    TRUNCATE TABLE #tempSnapshot

    INSERT INTO #tempSnapshot SELECT TOP 1 SnapshotDataID

    FROM [ReportServerTempDB].dbo.SnapshotData WITH (NOLOCK)

    where [ReportServerTempDB].dbo.SnapshotData.PermanentRefcount = 0

    AND [ReportServerTempDB].dbo.SnapshotData.TransientRefcount = 0

    AND [ReportServerTempDB].dbo.SnapshotData.Machine = @Machine

    SET @SnapshotsCleaned = @SnapshotsCleaned + @@ROWCOUNT

    SELECT @TempSnapshotID = (SELECT SnapshotDataID FROM #tempSnapshot)

    DELETE [ReportServerTempDB].dbo.ChunkData FROM [ReportServerTempDB].dbo.ChunkData INNER JOIN #tempSnapshot

    ON [ReportServerTempDB].dbo.ChunkData.SnapshotDataID = #tempSnapshot.SnapshotDataID

    SET @ChunksCleaned = @ChunksCleaned + @@ROWCOUNT

    DELETE [ReportServerTempDB].dbo.SnapshotData FROM [ReportServerTempDB].dbo.SnapshotData INNER JOIN #tempSnapshot

    ON [ReportServerTempDB].dbo.SnapshotData.SnapshotDataID = #tempSnapshot.SnapshotDataID

    Please advice

  • Are your users running their reports from snapshots?

    Is a new snapshot generated each time the run a report?

    Is the snapshot cleanup fired off each time they run a report?

    Are the reports scheduled?

    Have you tried scheduling the report, snapshots, and snapshot cleanup to occur at specific times?

    Jason...AKA CirqueDeSQLeil
    _______________________________________________
    I have given a name to my pain...MCM SQL Server, MVP
    SQL RNNR
    Posting Performance Based Questions - Gail Shaw[/url]
    Learn Extended Events

  • Are your users running their reports from snapshots?

    Is a new snapshot generated each time the run a report?

    Is the snapshot cleanup fired off each time they run a report?

    Are the reports scheduled?

    Have you tried scheduling the report, snapshots, and snapshot cleanup to occur at specific times?

    Thank you,

    all the settings are default. I just deployed the developed rdl files. Here we use ORACLE datasource to get the data.

    No, reports are scheduled.

    -->Is the snapshot cleanup fired off each time they run a report?

    how to make sure the above that the snapshot cleanup fired off each time they run a report?

    I-->a new snapshot generated each time the run a report?

    How to make sure that a new snapshot generated each time the run a report or not? and generating a new snapshot each time the report runs is good or we need to avoid that

    We have an application, where all the reports are under a tab called reports from where a user can select any report and view. Here in web.config file of application server, we mentioned the url http://servername/reportserver and user name & password to access the report server

    and there is another user from the datasource to connect to Oracle database and get the data

    Please see the attachment

    Please advice me what are the settings I need to change to work reporting services effectively and avoid blocking.

    thanks so much

  • COuld you please give me some idea to aviod this blocking from Reportserver & Is our Report Server settings (see te attahment) in Reportmanger good or need to change any?

    thanks

  • The datasource is Oracle. The reportserver is obviously MS SQL. Which (source db or report db) is showing the contention/ blocking?

    Jason...AKA CirqueDeSQLeil
    _______________________________________________
    I have given a name to my pain...MCM SQL Server, MVP
    SQL RNNR
    Posting Performance Based Questions - Gail Shaw[/url]
    Learn Extended Events

  • the blocking is from Reportserver NOT from Oracle database.

    Are your users running their reports from snapshots?

    Is a new snapshot generated each time the run a report?

    Is the snapshot cleanup fired off each time they run a report?

    Are the reports scheduled?

    Do I need to set the above settings to avoid blocking? Right now all settings are default and I did not change any.

    Please advice me waht settings I need to change

    Thank you very much

    Kln

  • You need to find what is causing the query you pasted to execute. Find what is causing that query to run, and then change it so that query is only executed as a part of a batch job that is scheduled.

    Jason...AKA CirqueDeSQLeil
    _______________________________________________
    I have given a name to my pain...MCM SQL Server, MVP
    SQL RNNR
    Posting Performance Based Questions - Gail Shaw[/url]
    Learn Extended Events

  • You need to find what is causing the query you pasted to execute. Find what is causing that query to run, and then change it so that query is only executed as a part of a batch job that is scheduled.

    Blocking occurring whenever a user runs the report from the application.

    Thanks

  • klnsuddu (3/24/2010)


    You need to find what is causing the query you pasted to execute. Find what is causing that query to run, and then change it so that query is only executed as a part of a batch job that is scheduled.

    Blocking occurring whenever a user runs the report from the application.

    Thanks

    So the end user runs a report, and the above query is what is being executed?

    Or is the above query being executed by something else (like a system job) and thus blocking the reports from the application?

    Jason...AKA CirqueDeSQLeil
    _______________________________________________
    I have given a name to my pain...MCM SQL Server, MVP
    SQL RNNR
    Posting Performance Based Questions - Gail Shaw[/url]
    Learn Extended Events

  • So the end user runs a report, and the above query is what is being executed?

    Or is the above query being executed by something else (like a system job) and thus blocking the reports from the application?

    I did NOT configure any jobs on report server and it's simple deployment with default settings and I did not find other than this query, which blocking when a user runs a report

    thanks so much

  • Hi,

    I got the blocking again from report server. When blocking occured, I logged into the report server & at the same time a log file was generated as below. From that log, I can see (ASSUME), that a report called INCOME REPORT, is causing the issue. But I did not get any idea on what to do. Please help. please see the high lated portion

    <Header>

    <Product>Microsoft SQL Server Reporting Services Version 9.00.4035.00</Product>

    <Locale>en-US</Locale>

    <TimeZone>Pacific Daylight Time</TimeZone>

    <Path>D:\Microsoft SQL Server\MSSQL.1\Reporting Services\LogFiles\ReportServer__04_13_2010_14_03_01.log</Path>

    <SystemName>SSRS</SystemName>

    <OSName>Microsoft Windows NT 5.2.3790 Service Pack 2</OSName>

    <OSVersion>5.2.3790.131072</OSVersion>

    </Header>

    w3wp!webserver!1!4/13/2010-14:03:01:: i INFO: Reporting Web Server started

    w3wp!library!1!4/13/2010-14:03:01:: i INFO: Initializing ConnectionType to '0' as specified in Configuration file.

    w3wp!library!1!4/13/2010-14:03:01:: i INFO: Initializing IsSchedulingService to 'True' as specified in Configuration file.

    w3wp!library!1!4/13/2010-14:03:01:: i INFO: Initializing IsNotificationService to 'True' as specified in Configuration file.

    w3wp!library!1!4/13/2010-14:03:01:: i INFO: Initializing IsEventService to 'True' as specified in Configuration file.

    w3wp!library!1!4/13/2010-14:03:01:: i INFO: Initializing PollingInterval to '10' second(s) as specified in Configuration file.

    w3wp!library!1!4/13/2010-14:03:01:: i INFO: Initializing WindowsServiceUseFileShareStorage to 'False' as specified in Configuration file.

    w3wp!library!1!4/13/2010-14:03:01:: i INFO: Initializing MemoryLimit to '60' percent as specified in Configuration file.

    w3wp!library!1!4/13/2010-14:03:01:: i INFO: Initializing RecycleTime to '720' minute(s) as specified in Configuration file.

    w3wp!library!1!4/13/2010-14:03:01:: i INFO: Initializing MaximumMemoryLimit to '80' percent as specified in Configuration file.

    w3wp!library!1!4/13/2010-14:03:01:: i INFO: Initializing MaxAppDomainUnloadTime to '30' minute(s) as specified in Configuration file.

    w3wp!library!1!4/13/2010-14:03:01:: i INFO: Initializing MaxQueueThreads to '0' thread(s) as specified in Configuration file.

    w3wp!library!1!4/13/2010-14:03:01:: i INFO: Initializing IsWebServiceEnabled to 'True' as specified in Configuration file.

    w3wp!library!1!4/13/2010-14:03:01:: i INFO: Initializing MaxActiveReqForOneUser to '20' requests(s) as specified in Configuration file.

    w3wp!library!1!4/13/2010-14:03:01:: i INFO: Initializing MaxScheduleWait to '5' second(s) as specified in Configuration file.

    w3wp!library!1!4/13/2010-14:03:01:: i INFO: Initializing DatabaseQueryTimeout to '120' second(s) as specified in Configuration file.

    w3wp!library!1!4/13/2010-14:03:01:: i INFO: Initializing ProcessRecycleOptions to '0' as specified in Configuration file.

    w3wp!library!1!4/13/2010-14:03:01:: i INFO: Initializing RunningRequestsScavengerCycle to '60' second(s) as specified in Configuration file.

    w3wp!library!1!4/13/2010-14:03:01:: i INFO: Initializing RunningRequestsDbCycle to '60' second(s) as specified in Configuration file.

    w3wp!library!1!4/13/2010-14:03:01:: i INFO: Initializing RunningRequestsAge to '30' second(s) as specified in Configuration file.

    w3wp!library!1!4/13/2010-14:03:01:: i INFO: Initializing CleanupCycleMinutes to '10' minute(s) as specified in Configuration file.

    w3wp!library!1!4/13/2010-14:03:01:: i INFO: Initializing DailyCleanupMinuteOfDay to default value of '120' minutes since midnight because it was not specified in Configuration file.

    w3wp!library!1!4/13/2010-14:03:01:: i INFO: Initializing WatsonFlags to '1064' as specified in Configuration file.

    w3wp!library!1!4/13/2010-14:03:01:: i INFO: Initializing WatsonDumpOnExceptions to 'Microsoft.ReportingServices.Diagnostics.Utilities.InternalCatalogException,Microsoft.ReportingServices.Modeling.InternalModelingException' as specified in Configuration file.

    w3wp!library!1!4/13/2010-14:03:01:: i INFO: Initializing WatsonDumpExcludeIfContainsExceptions to 'System.Data.SqlClient.SqlException,System.Threading.ThreadAbortException' as specified in Configuration file.

    w3wp!library!1!4/13/2010-14:03:01:: i INFO: Initializing SecureConnectionLevel to '0' as specified in Configuration file.

    w3wp!library!1!4/13/2010-14:03:01:: i INFO: Initializing DisplayErrorLink to 'True' as specified in Configuration file.

    w3wp!library!1!4/13/2010-14:03:01:: i INFO: Initializing WebServiceUseFileShareStorage to 'False' as specified in Configuration file.

    w3wp!resourceutilities!1!4/13/2010-14:03:01:: i INFO: Reporting Services starting SKU: Standard

    w3wp!resourceutilities!1!4/13/2010-14:03:01:: i INFO: Evaluation copy: 0 days left

    w3wp!resourceutilities!1!4/13/2010-14:03:01:: i INFO: Running on 2 physical processors, 8 logical processors

    w3wp!runningjobs!1!4/13/2010-14:03:01:: i INFO: Database Cleanup (Web Service) timer enabled: Next Event: 600 seconds. Cycle: 600 seconds

    w3wp!runningjobs!1!4/13/2010-14:03:01:: i INFO: Running Requests Scavenger timer enabled: Next Event: 60 seconds. Cycle: 60 seconds

    w3wp!runningjobs!1!4/13/2010-14:03:01:: i INFO: Running Requests DB timer enabled: Next Event: 60 seconds. Cycle: 60 seconds

    w3wp!runningjobs!1!4/13/2010-14:03:01:: i INFO: Memory stats update timer enabled: Next Event: 60 seconds. Cycle: 60 seconds

    w3wp!library!1!04/13/2010-14:03:02:: i INFO: Catalog SQL Server Edition = Enterprise

    w3wp!library!a!04/13/2010-14:03:04:: i INFO: Call to RenderFirst( '/Reports/IncomeReport' )

    w3wp!runningjobs!1!4/13/2010-14:04:01:: i INFO: Adding: 1 running jobs to the database

    w3wp!session!9!04/13/2010-14:13:19:: e ERROR: Sql Error in GetSnapshotData: System.Data.SqlClient.SqlException: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.

    at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)

    at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)

    at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)

    at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()

    at System.Data.SqlClient.SqlDataReader.get_MetaData()

    at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)

    at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)

    at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)

    at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)

    at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)

    at System.Data.SqlClient.SqlCommand.ExecuteReader()

    at Microsoft.ReportingServices.Library.InstrumentedSqlCommand.ExecuteReader()

    at Microsoft.ReportingServices.Library.DatabaseSessionStorage.GetSessionData(String sessionId, UserContext userContext, ConnectionManager connMgr)

    w3wp!library!9!04/13/2010-14:13:19:: e ERROR: Throwing Microsoft.ReportingServices.Diagnostics.Utilities.InternalCatalogException: An internal error occurred on the report server. See the error log for more details., ;

    Info: Microsoft.ReportingServices.Diagnostics.Utilities.InternalCatalogException: An internal error occurred on the report server. See the error log for more details. ---> System.Data.SqlClient.SqlException: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.

    at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)

    at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)

    at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)

    at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()

    at System.Data.SqlClient.SqlDataReader.get_MetaData()

    at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)

    at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)

    at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)

    at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)

    at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)

    at System.Data.SqlClient.SqlCommand.ExecuteReader()

    at Microsoft.ReportingServices.Library.InstrumentedSqlCommand.ExecuteReader()

    at Microsoft.ReportingServices.Library.DatabaseSessionStorage.GetSessionData(String sessionId, UserContext userContext, ConnectionManager connMgr)

    at Microsoft.ReportingServices.Library.DatabaseSessionStorage.GetSessionData(String sessionId, UserContext userContext)

    at Microsoft.ReportingServices.Library.SessionReportItem.Load(DatabaseSessionStorage sessionStorage, LoadAction loadFlags, String sessionId, String reportPath, DateTime snapshotDate, UserContext userContext, String userParams, String imageName, DatasourceCredentialsCollection dataSourceCred)

    at Microsoft.ReportingServices.WebServer.HttpClientRequest.LoadFromDB(LoadAction loadFlags, CatalogItemContext context)

    at Microsoft.ReportingServices.WebServer.HttpClientRequest.InitAsExistingSession(UserContext userContext)

    at Microsoft.ReportingServices.WebServer.SessionStarterAction.CreateExisting()

    --- End of inner exception stack trace ---

    w3wp!dbcleanup!7!4/13/2010-14:13:31:: e ERROR: Sql Error in CleanOrphanedSnapshots: System.Data.SqlClient.SqlException: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.

    at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)

    at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)

    at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)

    at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)

    at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)

    at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)

    at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)

    at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()

    at Microsoft.ReportingServices.Library.InstrumentedSqlCommand.ExecuteNonQuery()

    at Microsoft.ReportingServices.Library.DatabaseSessionStorage.CleanOrphanedSnapshots(Int32& chunksCleaned)

    w3wp!library!7!4/13/2010-14:13:31:: i INFO: Cleaned 0 batch records, 0 policies, 0 sessions, 0 cache entries, 0 snapshots, 0 chunks, 0 running jobs, 0 persisted streams

    w3wp!library!a!04/13/2010-14:16:51:: Using folder D:\Microsoft SQL Server\MSSQL.1\Reporting Services\RSTempFiles for temporary files.

    w3wp!webserver!a!04/13/2010-14:16:52:: i INFO: Processed report. Report='/Reports/IncomeReport', Stream=''

    w3wp!library!a!4/13/2010-14:23:01:: i INFO: Cleaned 0 batch records, 0 policies, 0 sessions, 0 cache entries, 0 snapshots, 0 chunks, 0 running jobs, 0 persisted streams

    w3wp!library!5!4/13/2010-14:33:01:: i INFO: Cleaned 0 batch records, 0 policies, 0 sessions, 0 cache entries, 0 snapshots, 0 chunks, 0 running jobs, 0 persisted streams

  • I have verified the failed reports but i did find the report INCOME REPORT in failed reports list.

    But I did see the report INCOME REPORT running while blocking occuring , in succeeded reports

    Failed Reports:

    SELECT TOP 2

    C.Path, C.Name,

    EL.UserName,

    EL.Status,

    EL.TimeStart,

    EL.[RowCount],

    EL.ByteCount,

    (EL.TimeDataRetrieval

    + EL.TimeProcessing

    + EL.TimeRendering)/1000 AS TotalSeconds,

    EL.TimeDataRetrieval,

    EL.TimeProcessing,

    EL.TimeRendering

    FROM ExecutionLog EL

    INNER JOIN Catalog C ON EL.ReportID = C.ItemID

    WHERE EL.Status <> 'rsSuccess'

    ORDER BY TimeStart DESC

    Results:

    Path name username status TimeStart rowcount bytecount toatlseconds TimeDataRetrieval TimeDataRetrieval TimeDataRetrieval

    /Reports/rpt22rpt22ABC\rssrversProcessingAborted2010-04-13 11:35:59.280 2 0 6 0 6752 0

    /Reports/rpt23rpt23ABC\rssrversProcessingAborted2010-03-24 14:30:13.640 0 0 1 0 1236 0

    Most recently ran reports:

    SELECT TOP 2

    C.Path, C.Name,

    EL.UserName,

    EL.Status,

    EL.TimeStart,

    EL.[RowCount],

    EL.ByteCount,

    (EL.TimeDataRetrieval

    + EL.TimeProcessing

    + EL.TimeRendering)/1000 AS TotalSeconds,

    EL.TimeDataRetrieval,

    EL.TimeProcessing,

    EL.TimeRendering

    FROM ExecutionLog EL

    INNER JOIN Catalog C ON EL.ReportID = C.ItemID

    ORDER BY TimeStart DESC

    Results:

    /Reports/IncomeReportIncomeReport ABC\rssrversSuccess2010-04-13 14:03:04.30018836382828347997479338733

    /Reports/rpt22rpt22 ABC\rssrversSuccess2010-04-13 13:11:24.7700260770082753

    thanks

  • Now that you know which report it is, I would check the SQL in the report and optimize the TSQL as well as tables and indexes for the report.

    One possible cause of seeing the report as successfully completed and failed is that it could have been run multiple times. Check to ensure that the report is not running from multiple jobs or as a subreport on another report at the same time.

    Jason...AKA CirqueDeSQLeil
    _______________________________________________
    I have given a name to my pain...MCM SQL Server, MVP
    SQL RNNR
    Posting Performance Based Questions - Gail Shaw[/url]
    Learn Extended Events

  • here is the whole scenario:

    SQL Server 2005 Reporting Services is installed on Server A and it's databases on Server B.

    On Server A, All the reporting Services settings are set to default. No other features are using & the Data source is ORACLE.

    A user "ABC" is used to connect Oracle database and the option user name & password are stored securely in report server has selected.

    On a application server C, in web.config file, provided the

    url: http://servername/reportserver

    Username: abc\RsReports

    Password: xxxxxxxxx

    Domain: abc

    So from the application, any end user views the report from the application, internally that end user going to invoke the user abc\RsReports, and which in turn connects the Reporting server from there the oracle user ABC connects to ORACLE database and fethes the data for the report.

    So what happens if 100 users, clicks the same report from Application?

    Is the user abc\RsReports makes 100 connections to report server and this turn invokes the oracle user ABC and it's also makes 100 connections to Oracle database?

    How this exactly works?

    Please share your inputs and how Reporting Services is configured at your organization?

    many thanks

  • Have you looked at the TSQL to optimize the code? The problem you are encountering seems to be a problem in a poorly written query. You need to check the query that the report is running.

    Jason...AKA CirqueDeSQLeil
    _______________________________________________
    I have given a name to my pain...MCM SQL Server, MVP
    SQL RNNR
    Posting Performance Based Questions - Gail Shaw[/url]
    Learn Extended Events

Viewing 15 posts - 1 through 15 (of 22 total)

You must be logged in to reply to this topic. Login to reply