sys.dm_os_memory_clerks (Transact-SQL)

Применимо к: даSQL Server (все поддерживаемые версии) ДаБаза данных SQL Azure ДаУправляемый экземпляр SQL Azure даAzure Synapse Analytics даПараллельное хранилище данных

Возвращает набор всех клерков памяти, активных в данный момент в экземпляре SQL Server.

Примечание

Чтобы вызвать эту функцию из Azure Synapse Analytics или Система платформы аналитики (PDW) , используйте имя sys.dm_pdw_nodes_os_memory_clerks. Этот синтаксис не поддерживается бессерверным пулом SQL в Azure Synapse Analytics.

Имя столбца Тип данных Описание
memory_clerk_address varbinary(8) Указывает уникальный адрес клерка памяти. Это первичный ключевой столбец. Не допускает значение NULL.
type nvarchar(60) Указывает тип клерка памяти. Каждый клерк принадлежит к определенному типу, такому как CLR Clerks MEMORYCLERK_SQLCLR. Не допускает значение NULL.
name nvarchar(256) Указывает внутреннее имя, назначенное данному клерку памяти. Компонент может иметь несколько клерков памяти определенного типа. Компонент может использовать определенные имена для идентификации клерков памяти одного и того же типа. Не допускает значение NULL.
memory_node_id smallint Указывает идентификатор узла памяти. Не допускает значения NULL.
single_pages_kb bigint Применимо к: с SQL Server 2008 до SQL Server 2008 R2. дополнительные сведения см. в разделе изменения в управлении памятью, начиная с SQL Server 2012 (11. x).
pages_kb bigint Область применения: SQL Server 2012 (11.x) и более поздних версий.

Устанавливает объем страничной памяти (в килобайтах), выделяемый для этого клерка памяти. Не допускает значение NULL.
multi_pages_kb bigint Применимо к: с SQL Server 2008 до SQL Server 2008 R2. дополнительные сведения см. в разделе изменения в управлении памятью, начиная с SQL Server 2012 (11. x).

Объем выделенной многостраничной памяти в КБ. Это объем памяти, выделенной с помощью механизма распределения множества страниц узлов памяти. Эта память выделена вне буферного пула и использует преимущества виртуального блока распределения узлов памяти. Не допускает значение NULL.
virtual_memory_reserved_kb bigint Указывает объем виртуальной памяти, зарезервированной клерком памяти. Не допускает значение NULL.
virtual_memory_committed_kb bigint Указывает объем виртуальной памяти, зафиксированной клерком памяти. Объем зафиксированной памяти должен всегда быть меньше объема зарезервированной памяти. Не допускает значение NULL.
awe_allocated_kb bigint Указывает объем физической памяти (в КБ), заблокированной в физической памяти и не выгруженной операционной системой. Не допускает значение NULL.
shared_memory_reserved_kb bigint Указывает объем общей памяти, зарезервированной клерком памяти. Объем памяти, зарезервированной для использования при сопоставлении общей памяти и файлов. Не допускает значение NULL.
shared_memory_committed_kb bigint Указывает объем общей памяти, зафиксированной клерком памяти. Не допускает значение NULL.
page_size_in_bytes bigint Указывает гранулярность выделения страниц для этого клерка памяти. Не допускает значение NULL.
page_allocator_address varbinary(8) Указывает адрес средства выделения страниц. Этот адрес уникален для клерка памяти и может использоваться в sys.dm_os_memory_objects для нахождение объектов памяти, привязанных к этому Клерку. Не допускает значение NULL.
host_address varbinary(8) Указывает адрес памяти, по которому размещается данный клерк памяти. дополнительные сведения см. в разделе sys.dm_os_hosts (Transact-SQL). Компоненты, такие как Microsoft SQL Server собственный клиент, обращаются к SQL Server ресурсам памяти через интерфейс узла.

0x00000000 = Клерк памяти принадлежит SQL Server.

Не допускает значение NULL.
pdw_node_id int Применимо к: Azure Synapse Analytics , Система платформы аналитики (PDW)

Идентификатор узла, на котором находится данное распределение.

Разрешения

В SQL Server необходимо VIEW SERVER STATE разрешение.
в База данных SQL Azure основных целях служб, S0 и S1, а также для баз данных в эластичных пулах требуется учетная запись администратора сервера или учетная запись администратора Azure Active Directory . Для всех остальных База данных SQL Azure целей службы VIEW DATABASE STATE необходимо разрешение в базе данных.

Remarks

Диспетчер памяти SQL Server имеет трехуровневую иерархию. В нижней части иерархии располагаются узлы памяти. Средний уровень содержит клерки, кэш и пулы памяти. Верхний уровень содержит объекты памяти. Эти объекты используются для выделения памяти в экземпляре SQL Server .

Узлы памяти обеспечивают интерфейс и реализацию низкоуровневых механизмов выделения. В пределах SQL Server доступ к узлам памяти имеют только клерки памяти. Клерки памяти получают доступ к интерфейсам узлов памяти для ее выделения. Узлы памяти также ведут слежение за выделяемой клерками памятью в целях диагностики. Каждый компонент, выделяющий значительный объем памяти, должен создать свой клерк памяти и выделить необходимую ему память с помощью интерфейсов клерка. Часто компоненты создают соответствующие им клерки во время запуска SQL Server.

ЗАПИСАННЫХ и USERSTORE

ЗАПИСАННЫХ и USERSTORE — это клерки памяти, но они работают как реальные кэши. Обычно кэши сохраняют выделение памяти до тех пор, пока политика удаления кэша не освободит эти выделения. Чтобы избежать повторного создания, кэшированное выделение сохраняется в кэше как можно больше и обычно удаляется из кэша, когда он слишком старый, чтобы быть полезным, или когда пространство памяти требуется для новой информации (Дополнительные сведения см. в разделе " Очистка часов)". Это один из двух основных элементов управления для управления жизненным циклом кэша и управления видимостью.

Хранилище кэша и хранилище пользователей отличаются тем, как они управляют временем существования выделений. В случае хранилища кэша все время существования записей полностью контролируется инфраструктурой кэширования SQLOS. При использовании хранилища пользователей время существования записей частично регулируется хранилищем. Реализация каждого пользовательского хранилища может быть характерна для природы выделения памяти, поэтому хранилища пользователей участвуют в контроле времени существования своих записей.

Управление видимостью управляет видимостью записи. Запись в кэше может существовать, но может быть невидимой. Например, если запись кэша отмечена только для единственного использования, запись не будет видна после ее использования. Кроме того, запись кэша может быть помечена как «грязная»; Он будет продолжать работать в кэше, но не будет отображаться для поиска. Для обоих магазинов видимость записи контролируется структурой кэширования.

Дополнительные сведения см. в разделе SQLOS Caching.

обжектсторе

Хранилище объектов — это простой пул. Он используется для кэширования однородных данных. Все записи в пулах рассматриваются как равные. Хранилища объектов реализуют максимальное ограничение для управления размером относительно других кэшей.

Дополнительные сведения см. в разделе SQLOS Caching.

Типы

В следующей таблице перечислены типы клерков памяти.

Тип Описание
CACHESTORE_BROKERDSH Это хранилище кэша используется для хранения распределений по Service Broker кэше заголовков безопасности диалогового окна
CACHESTORE_BROKERKEK это хранилище кэша используется для хранения распределений по Service Broker key Exchange кэша ключей.
CACHESTORE_BROKERREADONLY Это хранилище кэша используется для хранения выделений в кэше только для чтения Service Broker
CACHESTORE_BROKERRSB Это хранилище кэша используется для хранения выделений путем Service Broker кэша привязки удаленной службы .
CACHESTORE_BROKERTBLACS Это хранилище кэша используется для хранения выделений путем Service Broker для структур доступа безопасности.
CACHESTORE_BROKERTO Это хранилище кэша используется для хранения выделений путем Service Broker кэша объектов передачи .
CACHESTORE_BROKERUSERCERTLOOKUP Это хранилище кэша используется для хранения выделений с помощью Service Broker кэша поиска сертификатов пользователей
CACHESTORE_COLUMNSTOREOBJECTPOOL Это хранилище кэша используется для выделения индексов columnstore для сегментов и словарей .
CACHESTORE_CONVPRI Это хранилище кэша используется для хранения выделений путем Service Broker для наблюдения за приоритетом диалогов
CACHESTORE_EVENTS Это хранилище кэша используется для хранения выделений Service Broker уведомлениях о событиях .
CACHESTORE_FULLTEXTSTOPLIST Этот клерк памяти используется для выделения Full-Text подсистеме для функций списка стоп-слов .
CACHESTORE_NOTIF Это хранилище кэша используется для выделения с помощью функций уведомления о запросах .
CACHESTORE_OBJCP Это хранилище кэша используется для кэширования объектов с помощью скомпилированных планов (CP): хранимых процедур, функций и триггеров. Чтобы продемонстрировать, после создания плана запроса для хранимой процедуры его план сохраняется в этом кэше.
CACHESTORE_PHDR Это хранилище кэша используется для временного кэширования памяти во время синтаксического анализа для представлений, ограничений и значений по умолчанию алгебризатор деревьев во время компиляции запроса. После синтаксического анализа запроса память должна быть освобождена. некоторые примеры включают: множество инструкций в одном пакете — тысячи вставок или обновлений в один пакет, T-SQL пакет, содержащий большой динамически созданный запрос, большое количество значений в предложении in.
CACHESTORE_QDSRUNTIMESTATS Это хранилище кэша используется для кэширования статистики времени выполнения хранилища запросов .
CACHESTORE_SEARCHPROPERTYLIST Это хранилище кэша используется для выделений обработчиком Full-Text для кэша списка свойств .
CACHESTORE_SEHOBTCOLUMNATTRIBUTE Это хранилище кэша используется подсистемой хранилища для кэширования кучи или структуры метаданных столбцов сбалансированного дерева (HoBT).
CACHESTORE_SQLCP Это хранилище кэша используется для кэширования нерегламентированных запросов, подготовленных инструкций и курсоров на стороне сервера в кэше планов. нерегламентированные запросы — это обычно инструкции языка T-SQL, отправляемые на сервер без явной параметризации. подготовленные инструкции также используют это хранилище кэша. они отправляются приложением с помощью вызовов API, таких как SQLPrepare () / SQLExecute (ODBC) или SqlCommand. Prepare / sqlcommand. ExecuteNonQuery (ADO.NET) и будут отображаться на сервере как sp_prepare / sp_execute или sp_prepexec выполнении системных процедур. Кроме того, курсоры на стороне сервера будут потребляться из этого хранилища кэша (sp_cursoropen, sp_cursorfetch, sp_cursorclose).
CACHESTORE_STACKFRAMES это хранилище кэша используется для выделения внутренних SQL структур ос, связанных с кадрами стека.
CACHESTORE_SYSTEMROWSET Это хранилище кэша используется для выделения внутренних структур, связанных с ведением журнала и восстановлением транзакций.
CACHESTORE_TEMPTABLES Это хранилище кэша используется для распределений, связанных с временными таблицами и кэшированием табличных переменных — частью кэша планов.
CACHESTORE_VIEWDEFINITIONS Это хранилище кэша используется для кэширования определений представлений в процессе оптимизации запроса.
CACHESTORE_XML_SELECTIVE_DG Это хранилище кэша используется для кэширования XML-структур при обработке XML.
CACHESTORE_XMLDBATTRIBUTE Это хранилище кэша используется для кэширования структур атрибутов XML для операций XML, таких как XQuery.
CACHESTORE_XMLDBELEMENT Это хранилище кэша используется для кэширования структур XML-элементов для операций XML, таких как XQuery.
CACHESTORE_XMLDBTYPE Это хранилище кэша используется для кэширования XML-структур для операций XML, таких как XQuery.
CACHESTORE_XPROC Это хранилище кэша используется для кэширования структур для расширенных хранимых процедур (xproc) в кэше планов.
MEMORYCLERK_BACKUP Этот клерк памяти используется для различных операций выделения с помощью функций резервного копирования
MEMORYCLERK_BHF Этот клерк памяти используется для выделений для управления большими двоичными объектами (BLOB) во время выполнения запроса (поддержка обработки больших двоичных объектов).
MEMORYCLERK_BITMAP этот клерк памяти используется для выделения с помощью SQL функциональности ос для фильтрации по битовым картам
MEMORYCLERK_CSILOBCOMPRESSION Этот клерк памяти используется для выделения данных с помощью сжатия больших двоичных объектов (BLOB) индекса columnstore
MEMORYCLERK_DRTLHEAP этот клерк памяти используется для выделения функциональных возможностей ос SQL

Область применения: SQL Server 2019 (15.x) и более поздних версий
MEMORYCLERK_EXPOOL этот клерк памяти используется для выделения функциональных возможностей ос SQL

Область применения: SQL Server 2019 (15.x) и более поздних версий
MEMORYCLERK_EXTERNAL_EXTRACTORS Этот клерк памяти используется для выделения подсистемой выполнения запросов для операций пакетного режима .

Область применения: SQL Server 2019 (15.x) и более поздних версий
MEMORYCLERK_FILETABLE Этот клерк памяти используется для различных выделений с помощью функций таблиц FileTable .
MEMORYCLERK_FSAGENT Этот клерк памяти используется для различных выделений с помощью функций FileStream .
MEMORYCLERK_FSCHUNKER Этот клерк памяти используется для различных выделений с помощью функции FileStream для создания блоков FILESTREAM.
MEMORYCLERK_FULLTEXT Этот клерк памяти используется для выделения структур механизма Full-Text.
MEMORYCLERK_FULLTEXT_SHMEM Этот клерк памяти используется для выделения структур механизмов Full-Text, связанных с подключением к общей памяти с помощью процесса полнотекстовой управляющей программы Full Text.
MEMORYCLERK_HADR Этот клерк памяти используется для выделения памяти функцией AlwaysOn
MEMORYCLERK_HOST этот клерк памяти используется для выделения с помощью SQL функциональных возможностей ос.
MEMORYCLERK_LANGSVC этот клерк памяти используется для выделения с помощью SQL T-SQL инструкций и команд (средство синтаксического анализа, алгебризатор и т. д.).
MEMORYCLERK_LWC Этот клерк памяти используется для выделения Full-Text семантической поисковой подсистемой
MEMORYCLERK_POLYBASE Этот клерк памяти отслеживает выделение памяти для функций polybase в SQL Server.
MEMORYCLERK_QSRANGEPREFETCH Этот клерк памяти используется для выделений при выполнении запроса для предварительной выборки диапазона просмотра запросов.
MEMORYCLERK_QUERYDISKSTORE Этот клерк памяти используется выделениями памяти хранилища запросов в SQL Server.
MEMORYCLERK_QUERYDISKSTORE_HASHMAP Этот клерк памяти используется выделениями памяти хранилища запросов в SQL Server.
MEMORYCLERK_QUERYDISKSTORE_STATS Этот клерк памяти используется выделениями памяти хранилища запросов в SQL Server.
MEMORYCLERK_QUERYPROFILE Этот клерк памяти используется во время запуска сервера для включения профилирования запросов

Область применения: SQL Server 2019 (15.x) и более поздних версий
MEMORYCLERK_RTLHEAP этот клерк памяти используется для выделения с помощью SQL функциональных возможностей ос.

Область применения: SQL Server 2019 (15.x) и более поздних версий
MEMORYCLERK_SECURITYAPI этот клерк памяти используется для выделения с помощью SQL функциональных возможностей ос.

Область применения: SQL Server 2019 (15.x) и более поздних версий
MEMORYCLERK_SERIALIZATION Только для внутреннего применения
MEMORYCLERK_SLOG Этот клерк памяти используется для выделения ресурсов sLog (дополнительный поток журнала в памяти) в ускоренном восстановлении базы данных .

Область применения: SQL Server 2019 (15.x) и более поздних версий
MEMORYCLERK_SNI Этот клерк памяти выделяет память для компонентов сетевого интерфейса сервера (SNI). SNI управляет подключением и пакеты TDS для SQL Server
MEMORYCLERK_SOSMEMMANAGER Этот клерк памяти выделяет структуры для планирования потоков SQLOS (SOS) и управления памятью и вводом-выводом.
MEMORYCLERK_SOSNODE Этот клерк памяти выделяет структуры для планирования потоков SQLOS (SOS) и управления памятью и вводом-выводом.
MEMORYCLERK_SOSOS Этот клерк памяти выделяет структуры для планирования потоков SQLOS (SOS) и управления памятью и вводом-выводом.
MEMORYCLERK_SPATIAL Этот клерк памяти используется компонентами пространственных данных для выделения памяти.
MEMORYCLERK_SQLBUFFERPOOL Этот клерк памяти следит за наиболее крупными потребителями памяти, расположенными на SQL Server страницах данных и индексов. Буферный пул или кэш данных хранит страницы данных и индексов, загруженные в память, чтобы обеспечить быстрый доступ к данным. Дополнительные сведения см. в разделе Управление буферами.
MEMORYCLERK_SQLCLR Этот клерк памяти используется для выделения средой SQLCLR .
MEMORYCLERK_SQLCLRASSEMBLY Этот клерк памяти используется для выделений для сборок SQLCLR .
MEMORYCLERK_SQLCONNECTIONPOOL Этот клерк памяти кэширует сведения на сервере, который может потребоваться серверу клиентского приложения для наблюдения. Одним из примеров является приложение, которое создает дескрипторы подготовки с помощью sp_prepexecrpc. Приложение должно надлежащим образом отменять подготовку (закрыть) эти дескрипторы после выполнения.
MEMORYCLERK_SQLEXTENSIBILITY Этот клерк памяти используется для выделения средой расширяемости для запуска внешних скриптов Python или R в SQL Server .

Область применения: SQL Server 2019 (15.x) и более поздних версий
MEMORYCLERK_SQLGENERAL этот клерк памяти может использоваться несколькими потребителями в SQL подсистеме. к примерам относятся память репликации, внутренняя отладка или диагностика, некоторые SQL Server функции запуска, некоторые функции средства синтаксического анализа SQL, создание системных индексов, инициализация глобальных объектов памяти, создание подключения OLEDB внутри сервера и запросы к связанному серверу, трассировка профилировщика на стороне сервера, создание данных showplan, память для некоторых функциональных возможностей XML
MEMORYCLERK_SQLHTTP Не рекомендуется
MEMORYCLERK_SQLLOGPOOL Этот клерк памяти используется SQL Server пулом журналов. Пул журналов — это кэш, используемый для повышения производительности при чтении журнала транзакций. В частности, это улучшает использование кэша журнала во время нескольких операций чтения журнала, уменьшая количество операций чтения журнала дискового ввода-вывода и позволяя совместно использовать операции просмотра журналов. Основными потребителями пула журналов являются функции AlwaysOn (изменение записи и отправка), диспетчер повторов, восстановление базы данных-анализ/повтор/Отмена, откат среды выполнения транзакций, репликация и CDC, резервное копирование и восстановление.
MEMORYCLERK_SQLOPTIMIZER Этот клерк памяти используется для выделения памяти на разных этапах компиляции запроса. К некоторым применениям относятся оптимизация запросов, диспетчер статистики индекса, компиляция определений представлений, Создание гистограммы.
MEMORYCLERK_SQLQERESERVATIONS Этот клерк памяти используется для выделений памяти, выделяемых для запросов для выполнения операций сортировки и хэширования во время выполнения запроса. Дополнительные сведения о резервировании выполнения запросов (предоставление памяти) см. в этом блоге .
MEMORYCLERK_SQLQUERYCOMPILE Этот клерк памяти используется оптимизатором запросов для выделения памяти во время компиляции запроса.
MEMORYCLERK_SQLQUERYEXEC Этот клерк памяти используется для выделения в следующих областях: обработка пакетного режима, параллельное выполнение запросов , контекст выполнения запроса, тесселяция индекса, операции сортировки и хэширования (таблицы сортировки, хэш-таблицы), некоторые DVM обработки, выполнение обновления статистики
MEMORYCLERK_SQLQUERYPLAN Этот клерк памяти используется для распределений по управлению страницами кучи , выделениям DBCC CHECKTABLE и выделенным sp_cursor * хранимым процедурам .
MEMORYCLERK_SQLSERVICEBROKER этот клерк памяти используется SQL Server Service Broker выделения памяти.
MEMORYCLERK_SQLSERVICEBROKERTRANSPORT этот клерк памяти используется SQL Server Service Broker распределения памяти транспортного уровня.
MEMORYCLERK_SQLSLO_OPERATIONS Этот клерк памяти используется для сбора статистики производительности

Применимо к: База данных SQL Azure
MEMORYCLERK_SQLSOAP Не рекомендуется
MEMORYCLERK_SQLSOAPSESSIONSTORE Не рекомендуется
MEMORYCLERK_SQLSTORENG Этот клерк памяти используется для выделения нескольких компонентов подсистемы хранилища. К примерам компонентов относятся структуры для файлов базы данных, диспетчер файлов реплики моментальных снимков базы данных, монитор взаимоблокировок, структуры DBTABLE, структуры диспетчера журналов, некоторые структуры управления версиями tempdb, некоторые функции запуска сервера, контекст выполнения для дочерних потоков в параллельных запросах.
MEMORYCLERK_SQLTRACE этот клерк памяти используется для SQL распределения памяти при трассировке на стороне сервера.
MEMORYCLERK_SQLUTILITIES Этот клерк памяти может использоваться несколькими распределителями в SQL Server. К примерам относятся резервное копирование и восстановление, Доставка журналов, зеркальное отображение базы данных, команды DBCC, код BCP на стороне сервера, работа некоторых параллелизма запросов, буферы просмотра журнала.
MEMORYCLERK_SQLXML Этот клерк памяти используется для выделения памяти при выполнении операций XML.
MEMORYCLERK_SQLXP Этот клерк памяти используется для выделения памяти при вызове SQL Server расширенных хранимых процедур.
MEMORYCLERK_SVL этот клерк памяти используется для выделений внутренних SQL структур ос
MEMORYCLERK_TEST Только для внутреннего применения
MEMORYCLERK_UNITTEST Только для внутреннего применения
MEMORYCLERK_WRITEPAGERECORDER Этот клерк памяти используется для выделений с помощью записи страниц.
MEMORYCLERK_XE Этот клерк памяти используется для выделения памяти расширенных событий
MEMORYCLERK_XE_BUFFER Этот клерк памяти используется для выделения памяти расширенных событий
MEMORYCLERK_XLOG_SERVER этот клерк памяти используется для выделения ресурсов Xlog, используемых для управления файлами журнала в базе данных SQL Azure

Применимо к: База данных SQL Azure
MEMORYCLERK_XTP Этот клерк памяти используется для выделения памяти выполняющейся в памяти OLTP .
OBJECTSTORE_LBSS Это хранилище объектов используется для выделения временных LOB-переменных, параметров и промежуточных результатов для выражений. Пример, в котором используется это хранилище, — возвращающие табличное значение параметры (TVP). Дополнительные сведения об исправлениях в этой области см. в статье 4468102 базы знаний и в базе знаний 4051359 .
OBJECTSTORE_LOCK_MANAGER Этот клерк памяти отслеживает выделения памяти, сделанные диспетчером блокировок в SQL Server .
OBJECTSTORE_SECAUDIT_EVENT_BUFFER это хранилище объектов используется для SQL Server выделения памяти для аудита .
OBJECTSTORE_SERVICE_BROKER Это хранилище объектов используется Service Broker
OBJECTSTORE_SNI_PACKET Это хранилище объектов используется компонентами сетевого интерфейса сервера (SNI), которые управляют подключением.
OBJECTSTORE_XACT_CACHE Это хранилище объектов используется для кэширования сведений о транзакциях
USERSTORE_DBMETADATA Это хранилище объектов используется для структур метаданных
USERSTORE_OBJPERM Это хранилище используется для структур, отслеживающих безопасность и разрешения объектов.
USERSTORE_QDSSTMT Это хранилище кэша используется для кэширования инструкций хранилища запросов .
USERSTORE_SCHEMAMGR Кэш диспетчера схемы хранит различные типы метаданных о объектах базы данных в памяти (например, таблицах). Обычным пользователем этого хранилища может быть база данных tempdb с такими объектами, как таблицы, временные процедуры, табличные переменные, возвращающие табличное значение параметры, рабочие таблицы, создано рабочих файлов, хранилище версий.
USERSTORE_SXC Это хранилище пользователя используется для выделений для хранения всех параметров RPC .
USERSTORE_TOKENPERM TokenAndPermUserStore — это единое хранилище пользователей SOS, которое отслеживает записи безопасности для контекста безопасности, имени входа, пользователя, разрешения и аудита. Для хранения этих объектов выделяется несколько хэш-таблиц.

См. также:

SQL Server динамические административные представления, связанные с операционной системой (Transact-SQL)
sys.dm_os_sys_info (Transact-SQL)
sys.dm_exec_query_memory_grants (Transact-SQL)
sys.dm_exec_requests (Transact-SQL)
sys.dm_exec_query_plan (Transact-SQL)
sys.dm_exec_sql_text (Transact-SQL)