Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помогите понять где "узкое место" SQL  [new]
Лисицын
Member

Откуда:
Сообщений: 7
Всем привет!
Есть у меня одна проблема, решить уже неделю не могу. С SQL навыки никакие (от слова вообще), т.е. установить, ограничить память, настроить резервное копирование, планы обслуживания и т.п. чепуху могу. А вот в анализ производительности не доводилось углубляться (изначально соглашался только сеть построить, виртуализовать весь офисный хлам и т.д.).

Суть вопроса: есть сервера веб приложения на ASP.net (всего 8 штук по одному на 30-50 пользователей, пренебрежимо малая нагрузка) и жирный сервер с одной БД на ws2012R2+sql2012, скачет это всё верхом на ESXi 5.5 от VMware (15 ядер \ 70гб для SQL + 8гб для ОС) с хранилищем на СХД.

Перфом монитором ESXi вижу что почти все графики не выходят за 70%. Внутри вирт. серверов тоже самое. БД потихоньку растет, уже 140гб, ночкой темной индексы регенятся, раз в неделю полностью перестраиваются, резервные копии дифами раз в 4 часа архивируются.

Пользователи начали жаловаться на период. зависания на 3-10 минут, интерфейс уходит в несознанку и 50\50 что очнется обратно, а не сбросит сессию.

Что сделал, исключил сеть (ибо те же фризы происходят с консоли самого IIS'а), исключил ASp.net (30 челок даже пошатать графики не смогли), сам сервер БД стоит "как в поле воин" без соседей по ESXi. Все железо новое, все ПО с лицензиями и обновлено "по самую пипку".
Остается сама БД, но и тут облом, отправил логи профайлера разработчику приложения - удивились что быстрее эталонных показателей работает.

Есть идеи, может я что самое тривиальное забыл?

К сообщению приложен файл. Размер - 58Kb
1 дек 14, 11:04    [16930013]     Ответить | Цитировать Сообщить модератору
 Re: Помогите понять где "узкое место" SQL  [new]
Glory
Member

Откуда:
Сообщений: 104751
1. select @@version
2. https://www.sql.ru/articles/mssql/02111903performancecounters.shtml
3. select * from sys.dm_os_wait_stats order by wait_time_ms desc
1 дек 14, 11:08    [16930038]     Ответить | Цитировать Сообщить модератору
 Re: Помогите понять где "узкое место" SQL  [new]
Лисицын
Member

Откуда:
Сообщений: 7
Glory,

автор
(Отсутствует имя столбца)
Microsoft SQL Server 2012 - 11.0.5058.0 (X64)
May 14 2014 18:34:29
Copyright (c) Microsoft Corporation
Enterprise Edition (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) (Hypervisor)


wait_typewaiting_tasks_countwait_time_msmax_wait_time_mssignal_wait_time_ms

+
wait_typewaiting_tasks_countwait_time_msmax_wait_time_mssignal_wait_time_ms
CLR_AUTO_EVENT5463873002607255225525
DIRTY_PAGE_POLL229485323027213828711
LOGMGR_QUEUE1833142230271150628952
HADR_FILESTREAM_IOMGR_IOCOMPLETION46041723027095510019964
REQUEST_FOR_DEADLOCK_SEARCH460522302687155081230268715
XE_TIMER_EVENT518052302594605162230259383
SQLTRACE_INCREMENTAL_FLUSH_SLEEP5756223025827441800
LAZYWRITER_SLEEP5124302302413493330459344
XE_DISPATCHER_WAIT19192301577991200010
SP_SERVER_DIAGNOSTICS_SLEEP1249676230100109300000230100109
CHECKPOINT_QUEUE543118722080783135520202
SLEEP_TASK1447583861162258151168376416
BROKER_TO_FLUSH11242411513627411022024
CXPACKET28283547237179083041591310603
OLEDB365019670538551990700
PAGEIOLATCH_SH21140763860385645917411
BROKER_TASK_STOP2362360156100078
PAGEIOLATCH_EX10027277492698147919
LATCH_EX418403703431125102377
IO_COMPLETION43289641052420013700
PAGEIOLATCH_UP113518428620904
SOS_SCHEDULER_YIELD2806095133511152131115
LOGBUFFER883083961685
PREEMPTIVE_OS_FILEOPS7902230612700
WRITELOG212461238899557
PAGELATCH_SH2987801168025606
PREEMPTIVE_OS_WRITEFILE7981138421460
PAGELATCH_UP28521896711694838
WRITE_COMPLETION6866989506194
PREEMPTIVE_OS_WRITEFILEGATHER7834223550
PREEMPTIVE_XE_CALLBACKEXECUTE1703292340020
SLEEP_BPOOL_FLUSH3811291038115
PWAIT_ALL_COMPONENTS_INITIALIZED327239130
LATCH_SH207317846063
ASYNC_IO_COMPLETION381332900
SLEEP_DBSTARTUP87971161
ASYNC_NETWORK_IO856858520190
CMEMTHREAD4284156223384
SLEEP_DCOMSTARTUP25292750
SLEEP_SYSTEMTASK15215210
CHKPT15215210
SLEEP_MASTERDBREADY15105100
LCK_M_S24252240
PREEMPTIVE_OS_WAITFORSINGLEOBJECT169324200
PREEMPTIVE_OS_AUTHENTICATIONOPS1052299380
PREEMPTIVE_OS_SETFILEVALIDDATA812371200
FFT_RECOVERY42202190
MSQL_XP136173390
PAGELATCH_EX5682137523
PREEMPTIVE_OS_LOADLIBRARY3104660
PREEMPTIVE_OS_QUERYREGISTRY38379060
PREEMPTIVE_OS_CREATEFILE2118120
PREEMPTIVE_OS_AUTHORIZATIONOPS24072630
PREEMPTIVE_OS_NETVALIDATEPASSWORDPOLICY366650
CLR_MANUAL_EVENT86590
PREEMPTIVE_OS_GETFILEATTRIBUTES2073510
PREEMPTIVE_OS_DEVICEIOCONTROL1203420
PREEMPTIVE_OLEDBOPS12034200
PREEMPTIVE_OS_CRYPTIMPORTKEY8727220
PREEMPTIVE_OS_FLUSHFILEBUFFERS1002620
PREEMPTIVE_OS_DOMAINSERVICESOPS125250
PREEMPTIVE_OS_DELETESECURITYCONTEXT15125110
PREEMPTIVE_OS_REPORTEVENT642470
THREADPOOL812270
PREEMPTIVE_OS_CRYPTACQUIRECONTEXT1602010
PREEMPTIVE_OS_GETDISKFREESPACE1561910
BROKER_EVENTHANDLER3181415
EXECSYNC8113101
LCK_M_U213120
PREEMPTIVE_OS_QUERYCONTEXTATTRIBUTES1551370
PREEMPTIVE_OS_DELETEFILE311360
PREEMPTIVE_OS_DISCONNECTNAMEDPIPE1461240
PREEMPTIVE_XE_TARGETINIT31090
LCK_M_SCH_M610100
PREEMPTIVE_OS_LIBRARYOPS1990
BROKER_MASTERSTART1666
PREEMPTIVE_OS_LOOKUPACCOUNTSID17610
PREEMPTIVE_OS_REVERTTOSELF215610
PREEMPTIVE_OS_DECRYPTMESSAGE173510
SQLTRACE_FILE_BUFFER13520
DAC_INIT1440
PREEMPTIVE_XE_SESSIONCOMMIT8220
PREEMPTIVE_OS_CRYPTOPS5100
PREEMPTIVE_OS_NETVALIDATEPASSWORDPOLICYFREE3110
LOGMGR_FLUSH1110
CXROWSET_SYNC37100
PREEMPTIVE_OS_GENERICOPS0000
XE_TIMER_TASK_DONE0000
PREEMPTIVE_OS_ACCEPTSECURITYCONTEXT0000
PREEMPTIVE_OS_ACQUIRECREDENTIALSHANDLE0000
PREEMPTIVE_OS_COMPLETEAUTHTOKEN0000
NODE_CACHE_MUTEX0000
RG_RECONFIG0000
RESMGR_THROTTLED0000
SOS_MEMORY_USAGE_ADJUSTMENT0000
SECURITY_MUTEX0000
FS_HEADER_RWLOCK0000
FS_LOGTRUNC_RWLOCK0000
FS_FC_RWLOCK0000
FSTR_CONFIG_RWLOCK0000
FSTR_CONFIG_MUTEX0000
FSA_FORCE_OWN_XACT0000
COMMIT_TABLE0000
PREEMPTIVE_OS_VERIFYSIGNATURE0000
PREEMPTIVE_OS_ENCRYPTMESSAGE45000
PREEMPTIVE_OS_FREECREDENTIALSHANDLE0000
PREEMPTIVE_OS_INITIALIZESECURITYCONTEXT0000
PREEMPTIVE_OS_LOGONUSER0000
PREEMPTIVE_OS_QUERYSECURITYCONTEXTTOKEN0000
PREEMPTIVE_OS_DEVICEOPS0000
PREEMPTIVE_OS_RSFXDEVICEOPS0000
PREEMPTIVE_OS_DIRSVC_NETWORKOPS0000
PREEMPTIVE_OS_DSGETDCNAME0000
PREEMPTIVE_OS_NETGROUPGETUSERS0000
PREEMPTIVE_OS_NETLOCALGROUPGETMEMBERS0000
PREEMPTIVE_OS_NETUSERGETGROUPS0000
PREEMPTIVE_OS_NETUSERGETLOCALGROUPS0000
PREEMPTIVE_OS_NETUSERMODALSGET0000
PREEMPTIVE_OS_SETNAMEDSECURITYINFO0000
PREEMPTIVE_OS_CLUSTEROPS0000
PREEMPTIVE_CLUSAPI_CLUSTERRESOURCECONTROL0000
PREEMPTIVE_OS_COMOPS0000
PREEMPTIVE_COM_COCREATEINSTANCE0000
PREEMPTIVE_COM_COGETCLASSOBJECT0000
PREEMPTIVE_COM_CREATEACCESSOR0000
PREEMPTIVE_COM_DELETEROWS0000
PREEMPTIVE_COM_GETCOMMANDTEXT0000
PREEMPTIVE_COM_GETDATA0000
PREEMPTIVE_COM_GETNEXTROWS0000
PREEMPTIVE_COM_GETRESULT0000
PREEMPTIVE_COM_GETROWSBYBOOKMARK0000
PREEMPTIVE_COM_LBFLUSH0000
PREEMPTIVE_COM_LBLOCKREGION0000
PREEMPTIVE_COM_LBREADAT0000
PREEMPTIVE_COM_LBSETSIZE0000
PREEMPTIVE_COM_LBSTAT0000
PREEMPTIVE_COM_LBUNLOCKREGION0000
PREEMPTIVE_COM_LBWRITEAT0000
PREEMPTIVE_COM_QUERYINTERFACE0000
PREEMPTIVE_COM_RELEASE0000
PREEMPTIVE_COM_RELEASEACCESSOR0000
PREEMPTIVE_COM_RELEASEROWS0000
PREEMPTIVE_COM_RELEASESESSION0000
PREEMPTIVE_COM_RESTARTPOSITION0000
PREEMPTIVE_COM_SEQSTRMREAD0000
PREEMPTIVE_COM_SEQSTRMREADANDWRITE0000
PREEMPTIVE_COM_SETDATAFAILURE0000
PREEMPTIVE_COM_SETPARAMETERINFO0000
PREEMPTIVE_COM_SETPARAMETERPROPERTIES0000
PREEMPTIVE_COM_STRMLOCKREGION0000
PREEMPTIVE_COM_STRMSEEKANDREAD0000
PREEMPTIVE_COM_STRMSEEKANDWRITE0000
PREEMPTIVE_COM_STRMSETSIZE0000
PREEMPTIVE_COM_STRMSTAT0000
PREEMPTIVE_COM_STRMUNLOCKREGION0000
XACT_OWN_TRANSACTION0000
XACT_RECLAIM_SESSION0000
DTC_WAITFOR_OUTCOME0000
DTC_RESOLVE0000
SEC_DROP_TEMP_KEY0000
SRVPROC_SHUTDOWN0000
BROKER_INIT0000
BROKER_CONNECTION_RECEIVE_TASK0000
NET_WAITFOR_PACKET0000
DTC_ABORT_REQUEST0000
DTC_TMDOWN_REQUEST0000
RECOVER_CHANGEDB0000
WORKTBL_DROP0000
SNI_HTTP_WAITFOR_0_DISCON0000
UTIL_PAGE_ALLOC0000
SERVER_IDLE_CHECK0000
DEADLOCK_ENUM_MUTEX0000
VIEW_DEFINITION_MUTEX0000
QUERY_NOTIFICATION_MGR_MUTEX0000
QUERY_NOTIFICATION_TABLE_MGR_MUTEX0000
QUERY_NOTIFICATION_SUBSCRIPTION_MUTEX0000
QUERY_NOTIFICATION_UNITTEST_MUTEX0000
RESOURCE_SEMAPHORE_MUTEX0000
IO_AUDIT_MUTEX0000
BUILTIN_HASHKEY_MUTEX0000
SOS_PROCESS_AFFINITY_MUTEX0000
MSQL_XACT_MGR_MUTEX0000
MSQL_XACT_MUTEX0000
QRY_MEM_GRANT_INFO_MUTEX0000
SNI_CRITICAL_SECTION0000
SOS_STACKSTORE_INIT_MUTEX0000
SOS_SYNC_TASK_ENQUEUE_EVENT0000
SOS_OBJECT_STORE_DESTROY_MUTEX0000
EE_PMOLOCK0000
QUERY_OPTIMIZER_PRINT_MUTEX0000
DLL_LOADING_MUTEX0000
RESOURCE_SEMAPHORE_QUERY_COMPILE0000
BROKER_ENDPOINT_STATE_MUTEX0000
QUERY_EXECUTION_INDEX_SORT_EVENT_OPEN0000
ERROR_REPORTING_MANAGER0000
EE_SPECPROC_MAP_INIT0000
FULLTEXT GATHERER0000
SEQUENTIAL_GUID0000
ASSEMBLY_LOAD0000
VIA_ACCEPT0000
CHECK_PRINT_RECORD0000
INTERNAL_TESTING0000
SCAN_CHAR_HASH_ARRAY_INITIALIZATION0000
FS_GARBAGE_COLLECTOR_SHUTDOWN0000
FSAGENT0000
FILESTREAM_WORKITEM_QUEUE0000
FILESTREAM_FILE_OBJECT0000
FILESTREAM_FCB0000
FILESTREAM_CACHE0000
ABR0000
WCC0000
DUMPTRIGGER0000
TIMEPRIV_TIMEPERIOD0000
DISPATCHER_QUEUE_SEMAPHORE0000
XE_MODULEMGR_SYNC0000
XE_STM_CREATE0000
XE_SESSION_SYNC0000
XE_SESSION_CREATE_SYNC0000
XE_SERVICES_MUTEX0000
XE_SERVICES_RWLOCK0000
XE_SERVICES_EVENTMANUAL0000
XE_OLS_LOCK0000
SOS_DISPATCHER_MUTEX0000
XE_BUFFERMGR_FREEBUF_EVENT0000
XE_BUFFERMGR_ALLPROCESSED_EVENT0000
XE_DISPATCHER_JOIN0000
XE_TIMER_MUTEX0000
TRANSACTION_MUTEX0000
SLEEP_MSDBSTARTUP0000
MSSEARCH0000
XACTWORKSPACE_MUTEX0000
TRACEWRITE0000
WAITSTAT_MUTEX0000
WAITFOR_TASKSHUTDOWN0000
GUARDIAN0000
CLR_TASK_START2000
CLR_JOIN0000
CLR_CRST0000
CLR_SEMAPHORE0000
SNI_TASK_COMPLETION1000
SNI_LISTENER_ACCESS0000
EXECUTION_PIPE_EVENT_INTERNAL0000
CLR_MEMORY_SPY0000
CLRHOST_STATE_ACCESS0000
XE_DISPATCHER_CONFIG_SESSION_LIST0000
XE_SESSION_FLUSH0000
XE_CALLBACK_LIST0000
MSQL_DQ0000
HTREPARTITION0000
HTBUILD0000
SHUTDOWN0000
WAITFOR0000
DTCPNTSYNC0000
SOSHOST_INTERNAL0000
SOSHOST_SLEEP0000
SOSHOST_WAITFORDONE0000
SOSHOST_MUTEX0000
SOSHOST_EVENT0000
SOSHOST_SEMAPHORE0000
SOSHOST_RWLOCK0000
SOSHOST_TRACELOCK0000
CLR_MONITOR0000
CLR_RWLOCK_READER0000
CLR_RWLOCK_WRITER0000
SQLCLR_QUANTUM_PUNISHMENT0000
SQLCLR_APPDOMAIN0000
SQLCLR_ASSEMBLY0000
KTM_ENLISTMENT0000
KTM_RECOVERY_RESOLUTION0000
KTM_RECOVERY_MANAGER0000
SQLCLR_DEADLOCK_DETECTION0000
QPJOB_WAITFOR_ABORT0000
QPJOB_KILL0000
BAD_PAGE_PROCESS0000
BACKUP_OPERATOR0000
PRINT_ROLLBACK_PROGRESS0000
ENABLE_VERSIONING0000
DISABLE_VERSIONING0000
REQUEST_DISPENSER_PAUSE0000
DROPTEMP0000
FT_RESTART_CRAWL0000
LOGMGR_RESERVE_APPEND0000
BROKER_REGISTERALLENDPOINTS0000
FCB_REPLICA_WRITE0000
FCB_REPLICA_READ0000
EXCHANGE0000
EC0000
TEMPOBJ0000
XACTLOCKINFO0000
LOGMGR0000
SOS_VIRTUALMEMORY_LOW0000
SOS_CALLBACK_REMOVAL0000
SOS_MEMORY_TOPLEVELBLOCKALLOCATOR0000
SOS_PHYS_PAGE_CACHE0000
ONDEMAND_TASK_QUEUE1000
SQLTRACE_SHUTDOWN0000
QUERY_TRACEOUT0000
DTC_STATE0000
BROKER_TRANSMITTER2000
BROKER_SERVICE0000
BROKER_SHUTDOWN0000
PARALLEL_BACKUP_QUEUE0000
DUMP_LOG_COORDINATOR_QUEUE0000
LOWFAIL_MEMMGR_QUEUE0000
BACKUP0000
BACKUPBUFFER0000
BACKUPIO0000
BACKUPTHREAD0000
DBMIRROR_DBM_MUTEX0000
DBMIRROR_DBM_EVENT0000
DBMIRROR_SEND0000
DBMIRROR_EVENTS_QUEUE0000
DBMIRROR_WORKER_QUEUE0000
HTTP_START0000
HTTP_ENUMERATION0000
SOAP_READ0000
SOAP_WRITE0000
DUMP_LOG_COORDINATOR0000
DISKIO_SUSPEND0000
IMPPROV_IOWAIT0000
DEADLOCK_TASK_SEARCH0000
REPL_SCHEMA_ACCESS0000
REPL_CACHE_ACCESS0000
KSOURCE_WAKEUP1000
SQLSORT_SORTMUTEX0000
SQLSORT_NORMMUTEX0000
SQLTRACE_WAIT_ENTRIES0000
SLEEP_TEMPDBSTARTUP0000
RESOURCE_SEMAPHORE0000
DTC0000
DEBUG0000
REPLICA_WRITES0000
BROKER_RECEIVE_WAITFOR0000
DBMIRRORING_CMD0000
WAIT_FOR_RESULTS0000
FAILPOINT0000
RESOURCE_QUEUE0000
ASYNC_DISKPOOL_LOCK0000
PAGELATCH_DT0000
PAGEIOLATCH_NL0000
PAGEIOLATCH_KP0000
DBSTATE0000
SLEEP_MASTERMDREADY0000
SLEEP_MASTERUPGRADED0000
LCK_M_X0000
LCK_M_IS0000
LCK_M_IU0000
LCK_M_IX0000
LCK_M_SIU0000
LCK_M_SIX0000
LCK_M_UIX0000
LCK_M_BU0000
LCK_M_RS_S0000
LCK_M_RS_U0000
LCK_M_RIn_NL0000
LCK_M_RIn_S0000
LCK_M_RIn_U0000
LCK_M_RIn_X0000
LCK_M_RX_S0000
LCK_M_RX_U0000
LCK_M_RX_X0000
LATCH_NL0000
LATCH_KP0000
LATCH_UP0000
MISCELLANEOUS0000
LCK_M_SCH_S0000
LATCH_DT0000
PAGELATCH_NL0000
PAGELATCH_KP0000
PAGEIOLATCH_DT0000
TRAN_MARKLATCH_NL0000
TRAN_MARKLATCH_KP0000
TRAN_MARKLATCH_SH0000
TRAN_MARKLATCH_UP0000
TRAN_MARKLATCH_EX0000
TRAN_MARKLATCH_DT0000
PREEMPTIVE_OS_AUTHZGETINFORMATIONFROMCONTEXT0000
PREEMPTIVE_OS_AUTHZINITIALIZECONTEXTFROMSID0000
PREEMPTIVE_OS_AUTHZINITIALIZERESOURCEMANAGER0000
PREEMPTIVE_OS_DTCOPS0000
PREEMPTIVE_DTC_ABORT0000
PREEMPTIVE_DTC_ABORTREQUESTDONE0000
PREEMPTIVE_DTC_BEGINTRANSACTION0000
PREEMPTIVE_DTC_COMMITREQUESTDONE0000
PREEMPTIVE_DTC_ENLIST0000
PREEMPTIVE_DTC_PREPAREREQUESTDONE0000
PREEMPTIVE_OS_FINDFILE0000
PREEMPTIVE_FILESIZEGET98000
PREEMPTIVE_OS_CLOSEHANDLE0000
PREEMPTIVE_OS_COPYFILE0000
PREEMPTIVE_OS_CREATEDIRECTORY0000
PREEMPTIVE_OS_GETFILESIZE0000
PREEMPTIVE_OS_GETLONGPATHNAME0000
PREEMPTIVE_OS_GETVOLUMEPATHNAME0000
PREEMPTIVE_OS_GETVOLUMENAMEFORVOLUMEMOUNTPOINT0000
PREEMPTIVE_OS_MOVEFILE0000
PREEMPTIVE_OS_OPENDIRECTORY0000
PREEMPTIVE_OS_REMOVEDIRECTORY0000
PREEMPTIVE_OS_SETENDOFFILE0000
PREEMPTIVE_OS_SETFILEPOINTER0000
PREEMPTIVE_CLOSEBACKUPMEDIA0000
PREEMPTIVE_CLOSEBACKUPTAPE0000
PREEMPTIVE_CLOSEBACKUPVDIDEVICE0000
PREEMPTIVE_OS_VSSOPS0000
PREEMPTIVE_VSS_CREATESNAPSHOT0000
PREEMPTIVE_VSS_CREATEVOLUMESNAPSHOT0000
PREEMPTIVE_DFSADDLINK0000
PREEMPTIVE_DFSLINKEXISTCHECK0000
PREEMPTIVE_DFSLINKHEALTHCHECK0000
PREEMPTIVE_DFSREMOVELINK0000
PREEMPTIVE_DFSREMOVEROOT0000
PREEMPTIVE_DFSROOTFOLDERCHECK0000
PREEMPTIVE_DFSROOTINIT0000
PREEMPTIVE_DFSROOTSHARECHECK0000
PREEMPTIVE_OLE_UNINIT0000
PREEMPTIVE_FSAOLEDB_ABORTTRANSACTION0000
PREEMPTIVE_FSAOLEDB_COMMITTRANSACTION0000
PREEMPTIVE_FSAOLEDB_STARTTRANSACTION0000
PREEMPTIVE_FSRECOVER_UNCONDITIONALUNDO0000
PREEMPTIVE_SERVER_STARTUP0000
PREEMPTIVE_SHAREDMEM_GETDATA0000
PREEMPTIVE_CONSOLEWRITE0000
PREEMPTIVE_OS_SQMLAUNCH4000
PREEMPTIVE_TESTING0000
PREEMPTIVE_SOSHOST0000
PREEMPTIVE_SOSTESTING0000
PREEMPTIVE_XETESTING0000
PREEMPTIVE_SB_STOPENDPOINT1000
PREEMPTIVE_STARTRM0000
PREEMPTIVE_GETRMINFO0000
PREEMPTIVE_SETRMINFO0000
PREEMPTIVE_ROLLFORWARDREDO0000
PREEMPTIVE_ROLLFORWARDUNDO0000
PREEMPTIVE_RESIZELOG0000
PREEMPTIVE_REENLIST0000
PREEMPTIVE_TRANSIMPORT0000
PREEMPTIVE_UNMARSHALPROPAGATIONTOKEN0000
PREEMPTIVE_CREATEPARAM0000
PREEMPTIVE_STREAMFCB_RECOVER0000
PREEMPTIVE_STREAMFCB_CHECKPOINT0000
PREEMPTIVE_OS_FREELIBRARY0000
PREEMPTIVE_OS_GETPROCADDRESS136000
PREEMPTIVE_OS_GETCOMPRESSEDFILESIZE0000
PREEMPTIVE_OLEDB_ABORTTRAN0000
PREEMPTIVE_OLEDB_ABORTORCOMMITTRAN0000
PREEMPTIVE_OLEDB_GETDATASOURCE0000
PREEMPTIVE_OLEDB_GETLITERALINFO0000
PREEMPTIVE_OLEDB_GETPROPERTIES0000
PREEMPTIVE_OLEDB_GETPROPERTYINFO0000
PREEMPTIVE_OLEDB_GETSCHEMALOCK0000
PREEMPTIVE_OLEDB_JOINTRANSACTION0000
PREEMPTIVE_OLEDB_RELEASE0000
PREEMPTIVE_OLEDB_SETPROPERTIES0000
PREEMPTIVE_OS_PIPEOPS0000
PREEMPTIVE_OS_PROCESSOPS0000
PREEMPTIVE_OS_SECURITYOPS0000
PREEMPTIVE_OS_SERVICEOPS0000
PREEMPTIVE_OS_SQLCLROPS0000
PREEMPTIVE_OS_WINSOCKOPS0000
PREEMPTIVE_OS_GETADDRINFO0000
PREEMPTIVE_OS_WSASETLASTERROR0000
PREEMPTIVE_OS_FORMATMESSAGE0000
PREEMPTIVE_OS_BACKUPREAD0000
PREEMPTIVE_OS_MESSAGEQUEUEOPS0000
PREEMPTIVE_ODBCOPS0000
PREEMPTIVE_XE_DISPATCHER1000
PREEMPTIVE_XE_ENGINEINIT0000
PREEMPTIVE_XE_GETTARGETSTATE0000
AUDIT_XE_SESSION_MGR0000
AUDIT_ON_DEMAND_TARGET_LOCK0000
PWAIT_PREEMPTIVE_AUDIT_ACCESS_WINDOWSLOG0000
AUDIT_LOGINCACHE_LOCK0000
AUDIT_GROUPCACHE_LOCK0000
FT_METADATA_MUTEX0000
FT_IFTSHC_MUTEX0000
FT_IFTSISM_MUTEX0000
FT_IFTS_RWLOCK0000
FT_COMPROWSET_RWLOCK0000
FT_MASTER_MERGE0000
TRACE_EVTNOTIF0000
SOS_SMALL_PAGE_ALLOC0000
MD_LAZYCACHE_RWLOCK0000
MD_AGENT_YIELD0000
IOAFF_RANGE_QUEUE0000
FT_IFTS_SCHEDULER_IDLE_WAIT0000
REPL_HISTORYCACHE_ACCESS0000
REPL_TRANHASHTABLE_ACCESS0000
REPL_TRANTEXTINFO_ACCESS0000
REPL_TRANFSINFO_ACCESS0000
SERVER_RECONFIGURE0000
CHANGE_TRACKING_WAITFORCHANGES0000
PWAIT_MD_RELATION_CACHE0000
PWAIT_MD_SERVER_CACHE0000
PWAIT_MD_LOGIN_STATS0000
DISPATCHER_PRIORITY_QUEUE_SEMAPHORE0000
FT_PROPERTYLIST_CACHE0000
PERFORMANCE_COUNTERS_RWLOCK1000
SECURITY_KEYRING_RWLOCK0000
SQLTRACE_FILE_WRITE_IO_COMPLETION0000
SQLTRACE_FILE_READ_IO_COMPLETION0000
SQLTRACE_PENDING_BUFFER_WRITERS0000
PREEMPTIVE_OS_PDH_WMI_INIT0000
BROKER_TRANSMISSION_WORK0000
BROKER_TRANSMISSION_OBJECT0000
BROKER_TRANSMISSION_TABLE0000
BROKER_DISPATCHER0000
BROKER_FORWARDER0000
UCS_MANAGER0000
UCS_TRANSPORT0000
UCS_MEMORY_NOTIFICATION0000
UCS_ENDPOINT_CHANGE0000
UCS_TRANSPORT_STREAM_CHANGE0000
QUERY_TASK_ENQUEUE_MUTEX0000
SP_PREEMPTIVE_SERVER_DIAGNOSTICS_SLEEP0000
SP_SERVER_DIAGNOSTICS_INIT_MUTEX0000
DBCC_SCALE_OUT_EXPR_CACHE0000
GDMA_GET_RESOURCE_OWNER0000
PREEMPTIVE_XE_TARGETFINALIZE0000
XE_LIVE_TARGET_TVF0000
PREEMPTIVE_SP_SERVER_DIAGNOSTICS1000
SECURITY_CRYPTO_CONTEXT_MUTEX0000
SECURITY_RULETABLE_MUTEX0000
SEMPLAT_DSI_BUILD0000
FILESTREAM_CHUNKER_INIT0000
FILESTREAM_CHUNKER0000
FFT_RSFX_COMM0000
FFT_RSFX_WAIT_FOR_MEMORY0000
FFT_STARTUP_SHUTDOWN0000
PREEMPTIVE_XE_TIMERRUN1000
PREEMPTIVE_SNIOPEN0000
PREEMPTIVE_DEBUG0000
PREEMPTIVE_MSS_RELEASE0000
PREEMPTIVE_LOCKMONITOR1000
PREEMPTIVE_STRESSDRIVER0000
CLEAR_DB0000
PREEMPTIVE_ABR0000
LOGGENERATION0000
IO_RETRY0000
UCS_SESSION_REGISTRATION0000
ENABLE_EMPTY_VERSIONING0000
HADR_DB_OP_START_SYNC0000
HADR_DB_OP_COMPLETION_SYNC0000
HADR_LOGPROGRESS_SYNC0000
HADR_TRANSPORT_DBRLIST0000
HADR_CONNECTIVITY_INFO0000
XDESTSVERMGR0000
GHOSTCLEANUPSYNCMGR0000
HADR_AR_UNLOAD_COMPLETED0000
HADR_PARTNER_SYNC0000
HADR_DBSTATECHANGE_SYNC0000
DIRTY_PAGE_SYNC0000
AM_INDBUILD_ALLOCATION0000
STARTUP_DEPENDENCY_MANAGER0000
PWAIT_SECURITY_CACHE_INVALIDATION0000
XDES_HISTORY0000
XDES_SNAPSHOT0000
FT_MASTER_MERGE_COORDINATOR0000
PWAIT_RESOURCE_SEMAPHORE_FT_PARALLEL_QUERY_SYNC0000
REDO_THREAD_PENDING_WORK0000
REDO_THREAD_SYNC0000
COUNTRECOVERYMGR0000
HADR_DB_COMMAND0000
HADR_TRANSPORT_SESSION0000
HADR_CLUSAPI_CALL0000
PWAIT_HADR_CHANGE_NOTIFIER_TERMINATION_SYNC0000
PWAIT_HADR_ACTION_COMPLETED0000
PWAIT_HADR_OFFLINE_COMPLETED0000
PWAIT_HADR_ONLINE_COMPLETED0000
PWAIT_HADR_FAILOVER_COMPLETED0000
PWAIT_HADR_WORKITEM_COMPLETED0000
HADR_WORK_POOL0000
HADR_WORK_QUEUE0000
HADR_LOGCAPTURE_SYNC0000
PWAIT_HADR_CLUSTER_INTEGRATION0000
LOGCAPTURE_LOGPOOLTRUNCPOINT0000
LOGPOOL_CACHESIZE0000
LOGPOOL_FREEPOOLS0000
LOGPOOL_REPLACEMENTSET0000
LOGPOOL_CONSUMERSET0000
LOGPOOL_MGRSET0000
LOGPOOL_CONSUMER0000
LOGPOOLREFCOUNTEDOBJECT_REFDONE0000
HADR_SYNC_COMMIT0000
HADR_AG_MUTEX0000
PWAIT_HADR_SERVER_READY_CONNECTIONS0000
HADR_FILESTREAM_MANAGER0000
HADR_FILESTREAM_BLOCK_FLUSH0000
HADR_FILESTREAM_IOMGR0000
FFT_NSO_FCB0000
FFT_NSO_FCB_PARENT0000
FFT_NSO_FCB_FIND0000
FFT_NSO_FCB_RELEASE_CACHED_ENTRIES0000
FFT_NSO_FILEOBJECT0000
FFT_NSO_DB_LIST0000
FFT_NSO_DB_KILL_FLAG0000
FFT_NSO_TABLE_LIST0000
FFT_STORE_DB0000
FFT_STORE_TABLE0000
FFT_STORE_ROWSET_LIST0000
FFT_NTFS_STORE0000
HADR_FILESTREAM_FILE_REQUEST0000
PWAIT_MD_UPGRADE_CONFIG0000
PWAIT_COOP_SCAN0000
QRY_PARALLEL_THREAD_MUTEX0000
PWAIT_QRY_BPMEMORY0000
WAITFOR_PER_QUEUE0000
CREATE_DATINISERVICE0000
AM_SCHEMAMGR_UNSHARED_CACHE0000
HADR_REPLICAINFO_SYNC0000
HADR_COMPRESSED_CACHE_SYNC0000
HADR_AR_MANAGER_MUTEX0000
HADR_NOTIFICATION_WORKER_TERMINATION_SYNC0000
HADR_NOTIFICATION_DEQUEUE0000
HADR_ARCONTROLLER_NOTIFICATIONS_SUBSCRIBER_LIST0000
HADR_DBR_SUBSCRIBER_FILTER_LIST0000
HADR_DBR_SUBSCRIBER0000
HADR_NOTIFICATION_WORKER_STARTUP_SYNC0000
HADR_NOTIFICATION_WORKER_EXCLUSIVE_ACCESS0000
HADR_RECOVERY_WAIT_FOR_UNDO0000
HADR_DATABASE_WAIT_FOR_RESTART0000
HADR_XRF_STACK_ACCESS0000
HADR_RECOVERY_WAIT_FOR_CONNECTION0000
HADR_TRANSPORT_FLOW_CONTROL0000
HADR_DATABASE_FLOW_CONTROL0000
PWAIT_HADR_POST_ONLINE_COMPLETED0000
HADR_DATABASE_WAIT_FOR_TRANSITION_TO_VERSIONING0000
XDES_OUT_OF_ORDER_LIST0000
HADR_BACKUP_BULK_LOCK0000
HADR_BACKUP_QUEUE0000
HADR_LOGCAPTURE_WAIT0000
HADR_AR_CRITICAL_SECTION_ENTRY0000
HADR_TDS_LISTENER_SYNC0000
HADR_READ_ALL_NETWORKS0000
HADR_TDS_LISTENER_SYNC_PROCESSING0000
WAIT_XTP_TRAN_COMMIT0000
WAIT_XTP_GUEST0000
WAIT_XTP_TASK_SHUTDOWN0000
XTPPROC_PARTITIONED_STACK_CREATE0000
PREEMPTIVE_HADR_LEASE_MECHANISM0000
HADR_TIMER_TASK0000
PWAIT_EVENT_SESSION_INIT_MUTEX0000
PWAIT_REPLICA_ONLINE_INIT_MUTEX0000
HADR_GROUP_COMMIT0000
HADR_SYNCHRONIZING_THROTTLE0000
HADR_DATABASE_VERSIONING_STATE0000
SP_SERVER_DIAGNOSTICS_BUFFER_ACCESS0000
RESOURCE_GOVERNOR_IDLE0000
HADR_FILESTREAM_FILE_CLOSE0000
VERSIONING_COMMITTING0000
FILETABLE_SHUTDOWN0000
PRU_ROLLBACK_DEFERRED0000
TERMINATE_LISTENER0000
SEQUENCE_GENERATION0000


п.3 дня замеров хватит?
1 дек 14, 11:22    [16930159]     Ответить | Цитировать Сообщить модератору
 Re: Помогите понять где "узкое место" SQL  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8823
Лисицын
Есть идеи, может я что самое тривиальное забыл?

Смотрите в такой момент - есть ли взаимоблокирующие запросы.
exec sp_who2, например.
1 дек 14, 13:07    [16930871]     Ответить | Цитировать Сообщить модератору
 Re: Помогите понять где "узкое место" SQL  [new]
Лисицын
Member

Откуда:
Сообщений: 7
+
SPIDStatusLoginHostNameBlkByDBNameCommandCPUTimeDiskIOLastBatchProgramNameSPIDREQUESTID
1 BACKGROUND sa . .NULLLOG WRITER 421011/28 21:14:49 1 0
2 BACKGROUND sa . .NULLRECOVERY WRITER 78011/28 21:14:49 2 0
3 BACKGROUND sa . .NULLLAZY WRITER 30312011/28 21:14:49 3 0
4 BACKGROUND sa . .masterSIGNAL HANDLER 0011/28 21:14:49 4 0
5 BACKGROUND sa . .NULLLOCK MONITOR 31011/28 21:14:49 5 0
6 BACKGROUND sa . .masterBRKR TASK 0011/28 21:14:50 6 0
7 sleeping sa . .masterTASK MANAGER 0011/28 21:14:49 7 0
8 BACKGROUND sa . .NULLXE TIMER 265011/28 21:14:49 8 0
9 BACKGROUND sa . .NULLXE DISPATCHER 31011/28 21:14:49 9 0
10 BACKGROUND sa . .NULLRESOURCE MONITOR119734011/28 21:14:49 10 0
11 BACKGROUND sa . .masterTRACE QUEUE TASK31011/28 21:14:49 11 0
12 BACKGROUND sa . .NULLSYSTEM_HEALTH_MO703011/28 21:14:49 12 0
13 BACKGROUND sa . .NULLRECEIVE 0211/28 21:14:49 13 0
14 BACKGROUND sa . .masterTASK MANAGER 0011/28 21:14:49 14 0
15 BACKGROUND sa . .masterCHECKPOINT 10296108811/28 21:14:49 15 0
16 sleeping sa . .masterTASK MANAGER 0012/01 15:52:10 16 0
17 sleeping sa . .masterTASK MANAGER 0012/01 15:44:35 17 0
18 BACKGROUND sa . .masterBRKR EVENT HNDLR04611/28 21:14:50 18 0
19 BACKGROUND sa . .masterBRKR TASK 0011/28 21:14:50 19 0
20 BACKGROUND sa . .masterBRKR TASK 140011/28 21:14:50 20 0
21 BACKGROUND sa . .masterBRKR TASK 78011/28 21:14:50 21 0
22 sleeping sa . .masterTASK MANAGER 0012/01 15:52:15 22 0
23 sleeping sa . .masterTASK MANAGER 0012/01 15:52:35 23 0
24 sleeping sa . .masterTASK MANAGER 0012/01 15:05:05 24 0
25 sleeping sa . .masterTASK MANAGER 0012/01 15:23:05 25 0
26 sleeping sa . .masterTASK MANAGER 0012/01 15:53:05 26 0
27 sleeping sa . .masterTASK MANAGER 0012/01 15:53:05 27 0
28 sleeping sa . .masterTASK MANAGER 0012/01 15:53:05 28 0
29 sleeping sa . .masterTASK MANAGER 0012/01 15:53:05 29 0
30 sleeping sa . .masterTASK MANAGER 0012/01 15:45:05 30 0
51 sleeping AdminSRV .msdbAWAITING COMMAND465412/01 02:00:00SQLAgent - Job invocation engine 51 0
52 sleeping AdminSRV .msdbAWAITING COMMAND12510111/28 21:14:52SQLAgent - Generic Refresher 52 0
53 sleeping AdminSRV .msdbAWAITING COMMAND0011/28 21:14:52SQLAgent - Email Logger 53 0
54 sleeping saSRV .masterAWAITING COMMAND0012/01 08:58:48ASPnet 54 0
55 sleeping AdminSTAR2SRV-SQL .masterAWAITING COMMAND46112/01 16:11:32Microsoft SQL Server Management Studio 55 0
56 sleeping AdminSTAR2SRV-SQL .masterAWAITING COMMAND0112/01 13:12:41Среда Microsoft SQL Server Management Studio - запрос 56 0
57 SUSPENDED AdminSTAR2SRV-SQL .masterSELECT 1571412/01 15:16:46Приложение SQL Server Profiler 57 0
58 RUNNABLE AdminSTAR2SRV-SQL .masterSELECT INTO 31412/01 16:12:41Среда Microsoft SQL Server Management Studio - запрос 58 0
1 дек 14, 14:27    [16931384]     Ответить | Цитировать Сообщить модератору
 Re: Помогите понять где "узкое место" SQL  [new]
Лисицын
Member

Откуда:
Сообщений: 7
эт что? прост незнакомый диалект
1 дек 14, 14:35    [16931429]     Ответить | Цитировать Сообщить модератору
 Re: Помогите понять где "узкое место" SQL  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
Лисицын,

Хрустальный шар намекает на то что проблема тут (Hypervisor)
1 дек 14, 14:44    [16931484]     Ответить | Цитировать Сообщить модератору
 Re: Помогите понять где "узкое место" SQL  [new]
gR4mm
Member

Откуда: Москва
Сообщений: 1412
Попробуйте уменьшить параллелизм до 4

sp_configure 'show advanced options', 1;
GO
RECONFIGURE WITH OVERRIDE;
GO
sp_configure 'max degree of parallelism', 4;
GO
RECONFIGURE WITH OVERRIDE;
GO


По приведенным графикам наблюдается всплеск загрузки CPU и кол-ва ожидающих процессов. + в статистики ожиданий у Вас CXPACKET почти в топе, если не брать в расчет остальные ожидания. + у CXPACKET'а значние signal_wait_time_ms достаточно высоко.
1 дек 14, 15:04    [16931658]     Ответить | Цитировать Сообщить модератору
 Re: Помогите понять где "узкое место" SQL  [new]
Лисицын
Member

Откуда:
Сообщений: 7
WarAnt,

ну ежели Сам Хрустальный Шар, так тому и быть, развалю кластер, снесу гипервизоры и пожертвовав тридцатью тремя виртуалками запущу SQL без доп. абстракций

п.с.: а по тем данным что тут висят есть нетипичное поведение?
1 дек 14, 15:05    [16931677]     Ответить | Цитировать Сообщить модератору
 Re: Помогите понять где "узкое место" SQL  [new]
Crimean
Member

Откуда:
Сообщений: 13147
Лисицын
по тем данным что тут висят есть нетипичное поведение?


нет. криминала не видно. +до сих пор непонятна сама проблема.
1 дек 14, 15:21    [16931809]     Ответить | Цитировать Сообщить модератору
 Re: Помогите понять где "узкое место" SQL  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3754
Crimean
Лисицын
по тем данным что тут висят есть нетипичное поведение?


нет. криминала не видно. +до сих пор непонятна сама проблема.

имхо дедлоки же. На пятой строчке висят!
1 дек 14, 15:39    [16931938]     Ответить | Цитировать Сообщить модератору
 Re: Помогите понять где "узкое место" SQL  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8823
Ivan Durak, автор решил, что не может быть всё так просто.
1 дек 14, 15:43    [16931964]     Ответить | Цитировать Сообщить модератору
 Re: Помогите понять где "узкое место" SQL  [new]
Crimean
Member

Откуда:
Сообщений: 13147
Ivan Durak
имхо дедлоки же. На пятой строчке висят!


поиск дедлоков. не факт что дедлоки. гроздья блокировок - возможно
но скажем при включенном RCSI или при работе с NOLOCK это не должно никак влиять на другие запросы
1 дек 14, 15:51    [16932032]     Ответить | Цитировать Сообщить модератору
 Re: Помогите понять где "узкое место" SQL  [new]
stavgreengo
Member

Откуда:
Сообщений: 710
Владислав Колосов
Ivan Durak, автор решил, что не может быть всё так просто.

ОК. Но всё же больше интересует что решил Database Engine и есть ли в журнале сообщения с кодом ошибки 1205.
1 дек 14, 15:55    [16932053]     Ответить | Цитировать Сообщить модератору
 Re: Помогите понять где "узкое место" SQL  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8823
signal_wait_time_ms может косвенно говорить о нехватке ядер, но это не может вызвать задержки в работе. Я склонен считать, что здесь дело в ожидании запросами завершения транзакций (на что намекает поиск дедлоков). Проверить это легко - sp_who2, столбец blkby, как я уже писал.
1 дек 14, 16:00    [16932094]     Ответить | Цитировать Сообщить модератору
 Re: Помогите понять где "узкое место" SQL  [new]
Crimean
Member

Откуда:
Сообщений: 13147
Владислав Колосов,

только в то время, когда наблюдаются проблемы :)
и - если повезет / есть опыт в отлавливании такого поведения
1 дек 14, 16:08    [16932157]     Ответить | Цитировать Сообщить модератору
 Re: Помогите понять где "узкое место" SQL  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8823
Crimean,

оно так, думаю, что за упомянутые 3-10 минут можно успеть сохранить результат в таблицу. И не один раз.
1 дек 14, 16:21    [16932251]     Ответить | Цитировать Сообщить модератору
 Re: Помогите понять где "узкое место" SQL  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Лисицын
Пользователи начали жаловаться на период. зависания на 3-10 минут, интерфейс уходит в несознанку и 50\50 что очнется обратно, а не сбросит сессию.

Остается сама БД, но и тут облом, отправил логи профайлера разработчику приложения - удивились что быстрее эталонных показателей работает.
Логи профайлера были сняты в произвольный момент времени? Или таки были периоды зависания в тот момент когда снимались логи? Я не верю, что зависаний на 3-10 минут не видно в логах. Что именно было в этих логах, и какие настройки?
Опять же, в клиенте очень часто оставляют default таймаут в 30 секунд, по которому клиент выдает ошибку, это всяко лучше чем мертво зависнуть на 10 минут.

В 3х дневные результаты wait_stats попали периоды зависания или нет? Потому что я ничего криминального в статистике не вижу. У вас на картинке такой скачок по ожидающим процессам, но в статистике ожиданий по сути ничего нет, чтобы можно было хотя бы за уши притянуть. CXPACKET кстати на этом графике вообще не отображется, так что тут наверняка что-то другое.

Короче, в идеале, для полного анализа, нужен список висящих процессов в момент тормозов. Влючая тексты, планы, ресурсы, ожидания и блокировки.
4 дек 14, 01:21    [16947103]     Ответить | Цитировать Сообщить модератору
 Re: Помогите понять где "узкое место" SQL  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Владислав Колосов
Лисицын
Есть идеи, может я что самое тривиальное забыл?

Смотрите в такой момент - есть ли взаимоблокирующие запросы.
deadlock-и разве не должны резолвиться автоматически?

gR4mm
Попробуйте уменьшить параллелизм до 4
Попробовать можно, но вряд ли это является причиной зависаний на несколько минут. CXPACKET не является ожиданием как таковым.

Ivan Durak
имхо дедлоки же. На пятой строчке висят!
Ну вообще ж не в тему. Все что в этой таблице до CXPACKET всегда игнорируется ибо смысла не имеет.

Владислав Колосов
signal_wait_time_ms может косвенно говорить о нехватке ядер, но это не может вызвать задержки в работе.
О нехватке ядер обычно говорит SOS_SCHEDULER_YIELD, а оно тут в норме.
4 дек 14, 01:34    [16947114]     Ответить | Цитировать Сообщить модератору
 Re: Помогите понять где "узкое место" SQL  [new]
Idol_111
Member

Откуда:
Сообщений: 633
Согласен с Mind, или в логи профайлера ничего не попало или парни элементарно не смогли найти.

Недавно парился с подобным поведением. Просто один из запросов уходил в Sort Warnings из-за статистики.
4 дек 14, 02:33    [16947150]     Ответить | Цитировать Сообщить модератору
 Re: Помогите понять где "узкое место" SQL  [new]
gR4mm
Member

Откуда: Москва
Сообщений: 1412
Mind
gR4mm
Попробуйте уменьшить параллелизм до 4
Попробовать можно, но вряд ли это является причиной зависаний на несколько минут. CXPACKET не является ожиданием как таковым.
Здесь я с Вами не соглашусь.

http://technet.microsoft.com/en-us/library/ms179984.aspx
CXPACKET
Occurs with parallel query plans when trying to synchronize the query processor exchange iterator. If waiting is excessive and cannot be reduced by tuning the query (such as adding indexes), consider adjusting the cost threshold for parallelism or lowering the degree of parallelism.


Но, не зная остальных параметров системы, я не взялся бы сказать, является ли данное значение времени ожидания для данной конкретной системы нормальным.
4 дек 14, 10:17    [16947687]     Ответить | Цитировать Сообщить модератору
 Re: Помогите понять где "узкое место" SQL  [new]
Петр К
Member

Откуда:
Сообщений: 53
Вообще неплохо бы последить за логом профайлера в момент фриза - какие процессы исполнялись именно в этот момент. Но может быть и совершенно неожиданная причина. Мой собственный опыт: есть некие клиентские программы, есть SQL сервер. Все работало удовлетворительно, горя не знали. А потом наш IT отдел заменил антивирус на Каспера (ранее стоял ESET). И стали с ним играться как дурень с писаной торбой, накрутив его в настройках выше крыши (эвристический анализ на максимум, контроль протокола TCP/IP - ну это святое, как же без этого). И стали появляться охрененные фризы, в большинстве своем до таймаутов. Причем, что характерно, необязательно у всех пользователей. Вплоть до того, что в одной и той же программе в комнате работают три человека, из них два - без проблем, третий вообще работать не может, фриз до 30 минут и более (это я уже таймаут соединения выкрутил в коннекте по самое не могу). А дальше просто песня: изменяешь в коннекте метод взаимодействия с сервером с протокола TCP/IP (это штатный протокол SQL сервера) на именованные каналы - и фризы пропадают. (Можно не заморачиваться с изменением свойства коннектов по отдельности, а сделать это одним махом для всех коннектов с данным сервером (если метод взаимодействия не указан явно в коннекте) с помощью утилиты CLICONFG). Результат бы предъявлен системщикам - толку никакого. Пришлось оставить так как есть, хотя Microsoft пишет, что протокол именованных каналов устаревший и не рекомендует им пользоваться.
PS: Спустя эн времени Каспер так задолбал пользователей, что возник чудовищный скандал, и в порядке временного решения его вообще убрали с компов юзеров. Тогда и протокол TCP/IP заработал
4 дек 14, 11:42    [16948188]     Ответить | Цитировать Сообщить модератору
 Re: Помогите понять где "узкое место" SQL  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
gR4mm
Mind
пропущено...
Попробовать можно, но вряд ли это является причиной зависаний на несколько минут. CXPACKET не является ожиданием как таковым.
Здесь я с Вами не соглашусь.

http://technet.microsoft.com/en-us/library/ms179984.aspx
CXPACKET
Occurs with parallel query plans when trying to synchronize the query processor exchange iterator. If waiting is excessive and cannot be reduced by tuning the query (such as adding indexes), consider adjusting the cost threshold for parallelism or lowering the degree of parallelism.


Но, не зная остальных параметров системы, я не взялся бы сказать, является ли данное значение времени ожидания для данной конкретной системы нормальным.
Посмотрите еще раз на проблему ТС. Почти все время все нормально, но иногда появляются "зависания на 3-10 минут", причем я подозреваю, что зависания происходят на вполне регулярных запросах. Вы правда думаете, что 5 минут назад запрос выполнялся за 3 секунды, а теперь вдруг впал в спячку на минуты из-за того что там CXPACKET?

И еще раз, само по себе появление CXPACKET не является однозначным признаком того, что есть какие то ожидания. Появление CXPACKET говорит о том, что некие запросы выполняются паралельно. Вот например LCK_M_S это ожидание, и PAGEIOLATCH тоже ожидание. Если я вижу что PAGEIOLATCH = 10 секунд, то это означает что какой-то запрос(ы) ждали 10 секунд пока выполнится дисковая операция. Если же я вижу CXPACKET = 10 секунд, это означает, что какой то запрос(ы) выполнялся паралельно, это все что можно сказать. Нельзя даже сказать сколько по-времени выполнялся этот запрос, или сколько логических cpu было задействовано или сколько реально по времени процессы ожидали синхронизации.

"Большое" значение signal_wait_time_ms для CXPACKET' это примерно 22 минуты за период в почти 3 дня или примерно пол процента (0.5%) от общего времени. Сам по себе CXPACKET это 10% от общего времени, тоже не очень много, учитывая, что это не реальное ожидание.

Многие почему-то увидев CXPACKET на первой строчке "хит-парада" сразу советуют настраивать DOP. У нас, например, на одном из серверов CXPACKET wait_time = 11664296784, это примерно 135 дней. Данные собраны за 12 дней. DOP кстати = 4. Наверное нам давно пора застрелиться.
5 дек 14, 01:51    [16953087]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить