<event_sessions xmlns="http://schemas.microsoft.com/sqlserver/2008/07/extendedeventconfig">
  <event_session name="test" maxMemory="4" eventRetentionMode="allowSingleEventLoss" trackCausality="true" dispatchLatency="30" maxEventSize="0" memoryPartitionMode="none">
    <templateCategory>
      <!-- _locID_text="templateCategory" _locComment = "" -->查询执行</templateCategory>
    <templateName>
      <!-- _locID_text = "templateName" _locComment = "" -->查询等待统计信息</templateName>
    <templateDescription>
      <!-- _locID_text = "templateDescription" _locComment = "" -->此模板跟踪单独的查询语句、批处理和 RPC 的内部和外部等待统计信息。此模板还收集它跟踪的每个语句的查询哈希和查询计划哈希。在任意时刻，仅从服务器上的 20% 的活动会话收集事件。您可以通过为事件会话修改筛选器，更改抽样率。</templateDescription>
    <event package="sqlos" name="wait_info">
      <action package="sqlserver" name="client_app_name"/>
      <action package="sqlserver" name="database_id"/>
      <action package="sqlserver" name="query_hash"/>
      <action package="sqlserver" name="query_plan_hash"/>
      <action package="sqlserver" name="session_id"/>
      <predicate>
        <and>
          <and>
            <leaf>
              <comparator name="divides_by_uint64" package="package0"></comparator>
              <global name="session_id" package="sqlserver"></global>
              <value>5</value>
            </leaf>
            <leaf>
              <comparator name="greater_than_uint64" package="package0"></comparator>
              <global name="database_id" package="sqlserver"></global>
              <value>4</value>
            </leaf>
          </and>
          <leaf>
            <comparator name="equal_boolean" package="package0"></comparator>
            <global name="is_system" package="sqlserver"></global>
            <value>false</value>
          </leaf>
        </and>
      </predicate>
    </event>
    <event package="sqlos" name="wait_info_external">
      <action package="sqlserver" name="client_app_name"/>
      <action package="sqlserver" name="database_id"/>
      <action package="sqlserver" name="query_hash"/>
      <action package="sqlserver" name="query_plan_hash"/>
      <action package="sqlserver" name="session_id"/>
      <predicate>
        <and>
          <and>
            <leaf>
              <comparator name="divides_by_uint64" package="package0"></comparator>
              <global name="session_id" package="sqlserver"></global>
              <value>5</value>
            </leaf>
            <leaf>
              <comparator name="greater_than_uint64" package="package0"></comparator>
              <global name="database_id" package="sqlserver"></global>
              <value>4</value>
            </leaf>
          </and>
          <leaf>
            <comparator name="equal_boolean" package="package0"></comparator>
            <global name="is_system" package="sqlserver"></global>
            <value>false</value>
          </leaf>
        </and>
      </predicate>
    </event>
    <event package="sqlserver" name="rpc_completed">
      <action package="sqlserver" name="client_app_name"/>
      <action package="sqlserver" name="database_id"/>
      <action package="sqlserver" name="query_hash"/>
      <action package="sqlserver" name="session_id"/>
      <predicate>
        <and>
          <and>
            <leaf>
              <comparator name="divides_by_uint64" package="package0"></comparator>
              <global name="session_id" package="sqlserver"></global>
              <value>5</value>
            </leaf>
            <leaf>
              <comparator name="greater_than_uint64" package="package0"></comparator>
              <global name="database_id" package="sqlserver"></global>
              <value>4</value>
            </leaf>
          </and>
          <leaf>
            <comparator name="equal_boolean" package="package0"></comparator>
            <global name="is_system" package="sqlserver"></global>
            <value>false</value>
          </leaf>
        </and>
      </predicate>
    </event>
    <event package="sqlserver" name="rpc_starting">
      <action package="sqlserver" name="client_app_name"/>
      <action package="sqlserver" name="database_id"/>
      <action package="sqlserver" name="query_hash"/>
      <action package="sqlserver" name="session_id"/>
      <predicate>
        <and>
          <and>
            <leaf>
              <comparator name="divides_by_uint64" package="package0"></comparator>
              <global name="session_id" package="sqlserver"></global>
              <value>5</value>
            </leaf>
            <leaf>
              <comparator name="greater_than_uint64" package="package0"></comparator>
              <global name="database_id" package="sqlserver"></global>
              <value>4</value>
            </leaf>
          </and>
          <leaf>
            <comparator name="equal_boolean" package="package0"></comparator>
            <global name="is_system" package="sqlserver"></global>
            <value>false</value>
          </leaf>
        </and>
      </predicate>
    </event>
    <event package="sqlserver" name="sp_statement_completed">
      <action package="sqlserver" name="client_app_name"/>
      <action package="sqlserver" name="database_id"/>
      <action package="sqlserver" name="query_hash"/>
      <action package="sqlserver" name="query_plan_hash"/>
      <action package="sqlserver" name="session_id"/>
      <parameter name="collect_object_name" value="1"/>
      <parameter name="collect_statement" value="1"/>
      <predicate>
        <and>
          <and>
            <leaf>
              <comparator name="divides_by_uint64" package="package0"></comparator>
              <global name="session_id" package="sqlserver"></global>
              <value>5</value>
            </leaf>
            <leaf>
              <comparator name="greater_than_uint64" package="package0"></comparator>
              <global name="database_id" package="sqlserver"></global>
              <value>4</value>
            </leaf>
          </and>
          <leaf>
            <comparator name="equal_boolean" package="package0"></comparator>
            <global name="is_system" package="sqlserver"></global>
            <value>false</value>
          </leaf>
        </and>
      </predicate>
    </event>
    <event package="sqlserver" name="sp_statement_starting">
      <action package="sqlserver" name="client_app_name"/>
      <action package="sqlserver" name="database_id"/>
      <action package="sqlserver" name="query_hash"/>
      <action package="sqlserver" name="query_plan_hash"/>
      <action package="sqlserver" name="session_id"/>
      <predicate>
        <and>
          <and>
            <leaf>
              <comparator name="divides_by_uint64" package="package0"></comparator>
              <global name="session_id" package="sqlserver"></global>
              <value>5</value>
            </leaf>
            <leaf>
              <comparator name="greater_than_uint64" package="package0"></comparator>
              <global name="database_id" package="sqlserver"></global>
              <value>4</value>
            </leaf>
          </and>
          <leaf>
            <comparator name="equal_boolean" package="package0"></comparator>
            <global name="is_system" package="sqlserver"></global>
            <value>false</value>
          </leaf>
        </and>
      </predicate>
    </event>
    <event package="sqlserver" name="sql_batch_completed">
      <action package="sqlserver" name="client_app_name"/>
      <action package="sqlserver" name="database_id"/>
      <action package="sqlserver" name="query_hash"/>
      <action package="sqlserver" name="session_id"/>
      <predicate>
        <and>
          <and>
            <leaf>
              <comparator name="divides_by_uint64" package="package0"></comparator>
              <global name="session_id" package="sqlserver"></global>
              <value>5</value>
            </leaf>
            <leaf>
              <comparator name="greater_than_uint64" package="package0"></comparator>
              <global name="database_id" package="sqlserver"></global>
              <value>4</value>
            </leaf>
          </and>
          <leaf>
            <comparator name="equal_boolean" package="package0"></comparator>
            <global name="is_system" package="sqlserver"></global>
            <value>false</value>
          </leaf>
        </and>
      </predicate>
    </event>
    <event package="sqlserver" name="sql_batch_starting">
      <action package="sqlserver" name="client_app_name"/>
      <action package="sqlserver" name="database_id"/>
      <action package="sqlserver" name="query_hash"/>
      <action package="sqlserver" name="session_id"/>
      <predicate>
        <and>
          <and>
            <leaf>
              <comparator name="divides_by_uint64" package="package0"></comparator>
              <global name="session_id" package="sqlserver"></global>
              <value>5</value>
            </leaf>
            <leaf>
              <comparator name="greater_than_uint64" package="package0"></comparator>
              <global name="database_id" package="sqlserver"></global>
              <value>4</value>
            </leaf>
          </and>
          <leaf>
            <comparator name="equal_boolean" package="package0"></comparator>
            <global name="is_system" package="sqlserver"></global>
            <value>false</value>
          </leaf>
        </and>
      </predicate>
    </event>
    <event package="sqlserver" name="sql_statement_completed">
      <action package="sqlserver" name="client_app_name"/>
      <action package="sqlserver" name="database_id"/>
      <action package="sqlserver" name="query_hash"/>
      <action package="sqlserver" name="query_plan_hash"/>
      <action package="sqlserver" name="session_id"/>
      <predicate>
        <and>
          <and>
            <leaf>
              <comparator name="divides_by_uint64" package="package0"></comparator>
              <global name="session_id" package="sqlserver"></global>
              <value>5</value>
            </leaf>
            <leaf>
              <comparator name="greater_than_uint64" package="package0"></comparator>
              <global name="database_id" package="sqlserver"></global>
              <value>4</value>
            </leaf>
          </and>
          <leaf>
            <comparator name="equal_boolean" package="package0"></comparator>
            <global name="is_system" package="sqlserver"></global>
            <value>false</value>
          </leaf>
        </and>
      </predicate>
    </event>
    <event package="sqlserver" name="sql_statement_starting">
      <action package="sqlserver" name="client_app_name"/>
      <action package="sqlserver" name="database_id"/>
      <action package="sqlserver" name="query_hash"/>
      <action package="sqlserver" name="query_plan_hash"/>
      <action package="sqlserver" name="session_id"/>
      <predicate>
        <and>
          <and>
            <leaf>
              <comparator name="divides_by_uint64" package="package0"></comparator>
              <global name="session_id" package="sqlserver"></global>
              <value>5</value>
            </leaf>
            <leaf>
              <comparator name="greater_than_uint64" package="package0"></comparator>
              <global name="database_id" package="sqlserver"></global>
              <value>4</value>
            </leaf>
          </and>
          <leaf>
            <comparator name="equal_boolean" package="package0"></comparator>
            <global name="is_system" package="sqlserver"></global>
            <value>false</value>
          </leaf>
        </and>
      </predicate>
    </event>
    <target package="package0" name="event_file">
      <parameter name="filename" value="query_wait_analysis.xel"/>
    </target>
  </event_session>
</event_sessions>
