Ответы пользователя по тегу SQL Server
  • SQL Server Profiler - как разобраться в том что он показывает?

    Audit Login/Logout - индикация начала/завершения сеанса взаимодействия пользователя с сервером(во время создания/завершения connection-сессии).
    SQL:BatchStarting/BatchCompleted - индикация времени начала/завершения выполнения пакета. Под пакетом понимается набор одной или более T-SQL инструкций, передаваемых СУБД для исполнения в момент времени.
    RPC: Completed(Remote Procedure Call) - индикация успешного клиентского подключения извне и выполнения процедуры/пакета.

    Для анализа запросов достаточно отслеживать SQL:BatchStarting/Completed и RPC:Completed. Пользуйтесь фильтрами(имя пользователя, приложение), отбирайте наблюдаемые вхождения T-SQL перед началом трассировки.

    В вашем случае Entity Framework отправляет SQL-Batch на сервер; обращайте внимание на CPU - загрузка процессора сервера БД, Reads - количество чтений, Writes - записей , Duration - продолжительность операции в миллисекундах(10^-3). При выгрузке результатов трассировки в БД(очень удобная опция для анализа большого количества операций) или внешний источник секунды уже будут с приставкой "микро" или же 10^-6. Под RPC:Completed у вас выполняются регламентные команды SQL-сервера по установке/разрыву соединения.

    Полезные ссылки:
    SQL Server Tech Documentation - со стр. 878 инфа по профайлеру
    Batches
    Ответ написан
    Комментировать
  • Как в Asp Net Core подключиться к MS SQL Server и увидеть данные?

    Включить пакет SqlClient в файл project.json.

    {
        "dependencies": {
           ...//здесь идут ваши зависимости
            "System.Data.SqlClient": "4.1.0-*"//это нужно добавить
           ...
        }
      }
    }


    Сохранить изменения в файле. Подождать пока References проекта переопределятся.

    Затем все как обычно:
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
               connection.Open();
               using (SqlCommand command = new SqlCommand("SELECT * FROM dbo.Table", connection))
               {
                      var reader = command.ExecuteReader();
                      while(reader.Read())
                      {
                            var a = reader["Column"];//инициализация значения переменной полем из таблицы БД
                      }
               }
    }


    Примечание:
    connectionString = "Data Source=ServerName;Initial Catalog=DatabaseName;Persist Security Info=True;User ID=UserName;Password=Password;"))
    Ответ написан
    1 комментарий
  • Как создать вычислимое поле в модели Code First Entity Framework 6?

    Создать partial класс для сущности Document под именем Document.MyExtensionBlaBla.cs; добавить в него новое свойство TotalQuantity и определить логику его вычисления:

    public partial class Document
    {
         public decimal TotalQuantity => Rows.Sum(x => x.Quantity)
    }


    Впоследствии, к этому свойству можно обращаться из инстанса Document. Например, так:

    var totalSumByDocument = new dbCtx().Documents.Single(x => x.Id == id)).TotalQuantity;


    Где id - входной параметр искомого документа, представляющий собой его уникальный идентификатор.
    Ответ написан
    3 комментария