home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.databases.ms-sqlserver      Notorious Rube Goldberg contraption      19,505 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 19,071 of 19,505   
   Erland Sommarskog to amitpatel815@gmail.com   
   Re: SQL Server Performance Issue   
   10 Jun 14 23:15:56   
   
   From: esquel@sommarskog.se   
      
    (amitpatel815@gmail.com) writes:   
   > So, here i am confused and not sure why my site  is not working smoothly   
   > while other site with more users is working absolutely fine and i have   
   > enough hardware resources on the server.   
   >   
   > Can anyone please help me or suggest me how can i resolve or   
   > troubleshoot this issue.   
   >   
      
   A start is to collect wait statistics. Run this procedure with ten minutes   
   in between at a time when the server is slow:   
      
   CREATE PROCEDURE wait_stats_monitor AS   
      
   SET NOCOUNT ON   
      
   DECLARE @latest datetime,   
           @now    datetime   
      
   SELECT @now = getdate()   
      
   IF object_id('waitstats') IS NULL   
   BEGIN   
     CREATE TABLE waitstats (   
         sample_time       datetime     NOT NULL,   
         wait_type         nvarchar(60) NOT NULL,   
         sample_length_sec int          NULL,   
         delta_tasks_count bigint       NULL,   
         delta_wait_time   bigint       NULL,   
         delta_signal      bigint       NULL,   
         max_wait_time_ms  bigint       NOT NULL,   
         tot_tasks_count   bigint       NOT NULL,   
         tot_wait_time     bigint       NOT NULL,   
         tot_signal        bigint       NOT NULL,   
         CONSTRAINT pk_waitstats PRIMARY KEY (wait_type, sample_time)   
     )   
      
     CREATE INDEX sample_time ON waitstats (sample_time)   
   END   
      
   IF NOT EXISTS (SELECT * FROM waitstats)   
   BEGIN   
     INSERT waitstats (sample_time, wait_type, max_wait_time_ms,   
                        tot_tasks_count, tot_wait_time, tot_signal)   
         SELECT @now, wait_type, max_wait_time_ms,   
                waiting_tasks_count, wait_time_ms, signal_wait_time_ms   
         FROM   sys.dm_os_wait_stats   
   END   
   ELSE   
   BEGIN   
      SELECT @latest = MAX(sample_time) FROM waitstats   
      
      INSERT waitstats (sample_time, wait_type, sample_length_sec,   
                        delta_tasks_count,   
                        delta_wait_time,   
                        delta_signal,   
                        max_wait_time_ms, tot_tasks_count, tot_wait_time,   
                        tot_signal)   
      SELECT @now, ws.wait_type, datediff(ss, m.sample_time, @now),   
             ws.waiting_tasks_count - m.tot_tasks_count,   
             ws.wait_time_ms        - m.tot_wait_time,   
             ws.signal_wait_time_ms - m.tot_signal,   
             ws.max_wait_time_ms, ws.waiting_tasks_count, ws.wait_time_ms,   
             ws.signal_wait_time_ms   
      FROM   sys.dm_os_wait_stats ws   
      CROSS  APPLY (SELECT TOP 1 *   
                    FROM   waitstats m   
                    WHERE  m.wait_type = ws.wait_type   
                    ORDER  BY sample_time DESC) m   
      WHERE  ws.waiting_tasks_count <> m.tot_tasks_count OR   
             ws.wait_time_ms        <> m.tot_wait_time   OR   
             ws.signal_wait_time_ms <> m.tot_signal   
   END   
      
      
   When you have that data run this query:   
      
   SELECT TOP 10 wait_type, delta_tasks_count, delta_wait_time,   
                 delta_signal   
   FROM   waitstats   
    WHERE [wait_type] NOT IN (   
           N'BROKER_EVENTHANDLER',         N'BROKER_RECEIVE_WAITFOR',   
           N'BROKER_TASK_STOP',            N'BROKER_TO_FLUSH',   
           N'BROKER_TRANSMITTER',          N'CHECKPOINT_QUEUE',   
           N'CHKPT',                       N'CLR_AUTO_EVENT',   
           N'CLR_MANUAL_EVENT',            N'CLR_SEMAPHORE',   
           N'DBMIRROR_DBM_EVENT',          N'DBMIRROR_EVENTS_QUEUE',   
           N'DBMIRROR_WORKER_QUEUE',       N'DBMIRRORING_CMD',   
           N'DIRTY_PAGE_POLL',             N'DISPATCHER_QUEUE_SEMAPHORE',   
           N'EXECSYNC',                    N'FSAGENT',   
           N'FT_IFTS_SCHEDULER_IDLE_WAIT', N'FT_IFTSHC_MUTEX',   
           N'HADR_CLUSAPI_CALL',   
   N'HADR_FILESTREAM_IOMGR_IOCOMPLETION',   
           N'HADR_LOGCAPTURE_WAIT',        N'HADR_NOTIFICATION_DEQUEUE',   
           N'HADR_TIMER_TASK',             N'HADR_WORK_QUEUE',   
           N'KSOURCE_WAKEUP',              N'LAZYWRITER_SLEEP',   
           N'LOGMGR_QUEUE',                N'ONDEMAND_TASK_QUEUE',   
           N'PWAIT_ALL_COMPONENTS_INITIALIZED',   
           N'QDS_PERSIST_TASK_MAIN_LOOP_SLEEP',   
           N'QDS_CLEANUP_STALE_QUERIES_TASK_MAIN_LOOP_SLEEP',   
           N'REQUEST_FOR_DEADLOCK_SEARCH', N'RESOURCE_QUEUE',   
           N'SERVER_IDLE_CHECK',           N'SLEEP_BPOOL_FLUSH',   
           N'SLEEP_DBSTARTUP',             N'SLEEP_DCOMSTARTUP',   
           N'SLEEP_MASTERDBREADY',         N'SLEEP_MASTERMDREADY',   
           N'SLEEP_MASTERUPGRADED',        N'SLEEP_MSDBSTARTUP',   
           N'SLEEP_SYSTEMTASK',            N'SLEEP_TASK',   
           N'SLEEP_TEMPDBSTARTUP',         N'SNI_HTTP_ACCEPT',   
           N'SP_SERVER_DIAGNOSTICS_SLEEP', N'SQLTRACE_BUFFER_FLUSH',   
           N'SQLTRACE_INCREMENTAL_FLUSH_SLEEP',   
           N'SQLTRACE_WAIT_ENTRIES',       N'WAIT_FOR_RESULTS',   
           N'WAITFOR',                     N'WAITFOR_TASKSHUTDOWN',   
           N'WAIT_XTP_HOST_WAIT',          N'WAIT_XTP_OFFLINE_CKPT_NEW_LOG',   
           N'WAIT_XTP_CKPT_CLOSE',         N'XE_DISPATCHER_JOIN',   
           N'XE_DISPATCHER_WAIT',          N'XE_TIMER_EVENT')   
   ORDER BY delta_wait_time   
      
   Post this output here.   
      
      
   --   
   Erland Sommarskog, Stockholm, esquel@sommarskog.se   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca