(Возврат на основную страницу)

 

Содержание номера за Июнь 2012 год

SQL Server

Июнь 2012 № 6 (24)

 

  1. Ранжирующие функции SQL Server
    Дина Дикен (Deanna Dicken)

  2. Объект последовательности в SQL Server 2012
    Ананта Кумар Мафесами (Anantha Kumar Muthusamy)

  3. Несколько полезных вещей, которые можно выяснить с помощью трассировки по умолчанию
    Грег Ларсен (Greg Larsen)

  4. Внедрение XML-данных в объекты базы данных
    Роберт Шелдон (Robert Sheldon)

  5. Как найти самые медленные запросы
    Гулли Мил (Gulli Meel)


Ранжирующие функции SQL Server
Дина Дикен (Deanna Dicken)

Набор функций SQL Server включает (начиная с версии SQL Server 2005) четыре ранжирующие функции. Эти функции – ROW_NUMBER, RANK, DENSE_RANK и NTILE – можно использовать для ранжирования строк в группе результирующего набора. В настоящей статье будут представлены эти функции и примеры их использования.
 

Ранжирующие функции
Ранжирующие функции являются подмножеством встроенных функций сервера SQL Server. Они используются для того, чтобы обеспечить некоторого рода ранги для набора строк в группе. Если групп нет, группой может быть весь результирующий набор. В противном случае, разбиение результирующего набора на группы определяется с помощью опции PARTITION, указанной в предложении OVER. Упорядочение рангов в группе определяет опция ORDER, указанная в предложении OVER. Опция ORDER должна указываться обязательно, даже несмотря на то, что опция PARTITION обязательной не является. Синтаксис предложения OVER можно найти здесь (http://msdn.microsoft.com/en-us/library/ms189461(v=sql.110).aspx).
Далее будет рассмотрена каждая ранжирующая функция и приведены примеры. В примерах, приводимых в этой статье, используются таблицы из базы данных AdventureWorks.
 



Объект последовательности в SQL Server 2012
Ананта Кумар Мафесами (Anantha Kumar Muthusamy)

Одной из многих возможностей, которые фирма Microsoft представила в новой версии SQL Server 2012, является объект последовательности (sequence object). В этой статье я собираюсь показать, как создавать и использовать объект последовательности.
Последовательности, которые формирует объект последовательности, похожи на значения свойства IDENTITY; однако, они не привязаны к одной таблице.
К объекту последовательности можно обращаться непосредственно из приложений, и этим объектом могут пользоваться сразу несколько строк или таблиц.
 


Несколько полезных вещей, которые можно выяснить с помощью трассировки по умолчанию
Грег Ларсен (Greg Larsen)

Если у вас работает экземпляр версии SQL Server 2005 и выше, весьма вероятно, что на нем выполняется трассировка по умолчанию. Трассировка по умолчанию – это стандартная трассировка приложения Profiler, которая выполняется на стороне сервера и запускается автоматически при запуске сервера SQL Server. В настоящей статье я дам более подробное объяснение того, что собой представляет трассировка по умолчанию, а также покажу, как можно получить некоторую информацию о событиях из файлов, созданных этим фоновым процессом.


Что это такое – «трассировка по умолчанию»?
Трассировка по умолчанию – это заранее подготовленное определение трассировки приложения Profiler, входящее в инсталляцию SQL Server. Эта трассировка выполняется на стороне сервера и обычно запускается автоматически при запуске сервера SQL Server.
 


Внедрение XML-данных в объекты базы данных
Роберт Шелдон (Robert Sheldon)

XML-данные могут стать полноправным субъектом базы данных SQL Server и использоваться в представлениях, функциях, проверочных ограничениях, вычисляемых столбцах, а также значениях по умолчанию. Представления и функции, возвращающие табличные значения, можно использовать для обеспечения табличного представления XML-данных, которое можно использовать в выражениях языка SQL. Роберт Шелдон объясняет, как это делается.
В двух своих последних статьях, «Работа с типом данных XML в SQL Server» и «Методы типа данных XML в SQL Server», я говорил о том, как использовать тип данных XML и его методы для хранения и доступа к XML-данным. В настоящей статье эта тема получает дальнейшее развитие, здесь объясняются способы, которые позволяют внедрять XML-данные в различные объекты базы данных, включая представления, функции, вычисляемые столбцы, проверочные ограничения и значения, используемые по умолчанию. Если вы не знакомы с тем, как тип данных XML и его методы реализованы в SQL Server, следует обратиться к первым двум статьям из этой серии прежде, чем приступать к чтению настоящей статьи. Получив базовые сведения, вы обнаружите, что внедрение XML-данных в другие объекты базы данных – это относительно простая и очевидная процедура.
 


Как найти самые медленные запросы
Гулли Мил (Gulli Meel)

Возможно, вам приходилось видеть запросы, которые выводят 10 или 5 наиболее проблемных запросов в системе. Сортировка выполняется либо по числу логических чтений, либо по потреблению ЦПУ, возможно по времени исполнения. У меня получилось нечто подобное, только мой запрос делает много всего и сразу.
Лично мне не нравится выполнять индивидуальные сортировки по выше перечисленным критериям. Я обычно использую приведенный ниже запрос для определения наиболее затратных запросов по нескольким параметрам сразу, например 5 наиболее затратных с точки зрения ‘Total Logical Reads’ и одновременно по ‘Total CPU Time’ и также по ‘Total Elapsed Time’ и так далее. Это позволяет мне получить информацию сразу по целому ряду параметров и получить «действительно» проблемные запросы. Когда я говорю «действительно», нужно понимать, что некий запрос может использовать больше процессорного времени, потому что используется параллельный план исполнения, но время исполнения оказывается не таким уж большим.
Тем не менее, некоторые параметры все же не рассматриваются. Есть запросы, которые требуют память для организации сортировок и hash соединений. Этот параметр в мой запрос не включен. В явном виде. Но значительные потребления памяти часто сопровождаются существенными требованиями к ЦПУ. И по этому параметру мы можем найти подобные проблемные запросы.


(Возврат на основную страницу)

Hosted by uCoz