Ведение журнала SQL Server в Azure - PullRequest
0 голосов
/ 18 февраля 2019

Я смотрю на файл xel, который был экспортирован из Microsoft Azure Storage Explorer.

Один конкретный запрос:

select top 1 dist.Distance...

, который должен «влиять» только на одну строку.Без top 1 запрос никогда не вернет больше 10 строк.

Но в файле xel указано, что для этого запроса значения 210_20 для этого запроса были 210720.

Что означает это число?

РЕДАКТИРОВАТЬ - Добавление полного запроса

declare @Latitude float = 0,@Longitude float = 0

select top 1 dist.Distance, f.id, f.SEOPageTitle, f.SEOMetroCity, f.SEOCity1, f.SEOCity2, f.SEOCity3, f.MetaDescription, f.MetaKeywords 
FROM f (NOLOCK) 
join (select distinct f.id, min(dbo.CalculateDistance(@Latitude, @Longitude, z.Latitude, z.Longitude)) 'Distance' 
        FROM f2 (NOLOCK) 
        join FZipCode fz (NOLOCK) on f2.id = fz.FID 
        join (select distinct ZipCode, Latitude, Longitude from ZipCodes (NOLOCK)) z on z.ZIPCode = fz.ZIPCode 
        where f.Activated = 1 and dbo.CalculateDistance(@Latitude, @Longitude, z.Latitude, z.Longitude) <= 30 
        group by f2.id) dist on f.id = dist.FID 
order by Distance

1 Ответ

0 голосов
/ 26 февраля 2019

Но файл xel гласит, что для этого запроса значение_процедуры было 210720.Что означает это число?

*. Файлы xel являются файлами аудита БД.

В последней версии SQL Server появились новые столбцы в sys.fn_get_audit_file :,

Column name     | Type   | Description
--------------- |--------|------------------------------
response_rows   | bigint | Applies to: Azure SQL DB only    
affected_rows   | bigint | Applies to: Azure SQL DB only

К сожалению, эти столбцы вообще не документированы.

Однако у меня есть несколько предположений:

  • Я думаю, что ваш вопрос относится к значениюстолбца affected_rows этой функции.
  • Я предполагаю, что другой столбец - response_rows возвращает правильное значение = 1. Он показывает количество столбцов в наборе данных, который был отправлен клиентскому приложению.
  • Я предполагаю, что affected_rows возвращает количество измененных строк внутренне .Возможно, речь идет о tempdb рабочих таблицах , но он не показывает количество строк, отправляемых клиенту.

Обновление 2019-02-26:

@ утка подтвердил предположения.response_rows имеет значение 1, которое представляет количество строк в наборе данных, которые были отправлены Azure DB на клиент.Столбец affected_rows, возможно, имеет несколько другое значение для операторов SELECT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...