<
  • Главная
Статьи

Метаданные, системные представления в SQL Server, информация об объектах

  1. Типы системных представлений в SQL Server
  2. Общие представления системы
  3. Схемы информационной схемы (INFORMATION_SCHEMA)
  4. Совместимость просмотров
  5. Динамические представления DMV (динамические представления управления)

Одним из наиболее полезных источников информации о структурах и свойствах объектов (метаданных), создаваемых в базах данных SQL Server, являются системные представления. Обычные пользователи редко используют свои возможности. Возможно, это связано с количеством просмотров, разных типов и необходимостью узнать об их структурах. Или, может быть, они просто не осознают своего существования или им они ни для чего не нужны?

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

Вы можете найти полную карту доступных системных представлений, взаимосвязи между ними для SQL Server 2008 R2 здесь ,

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

Типы системных представлений в SQL Server

В среде SQL Server мы можем использовать несколько типов системных представлений. Как обычно бывает, есть много способов достичь одной и той же цели.

Общие представления системы

Это основные структуры, благодаря которым мы имеем прямой доступ к знаниям обо всех объектах в базах данных / серверах (метаданных). Они содержатся в схеме sys. Важно отметить, что они очень хорошо документированы в BOL / MSDN. Их количество довольно велико, вы можете получить к ним доступ в каждой базе данных, перейдя, например, в Management Studio в Views> System Views. Фрагмент (только взгляды из INFORMATION_SCHEMA) ниже:
Это основные структуры, благодаря которым мы имеем прямой доступ к знаниям обо всех объектах в базах данных / серверах (метаданных)
В зависимости от уровня разрешений вы можете иметь доступ к некоторым из них или даже только к определенному диапазону данных в них.

Одним из примеров приложений является изучение структуры базы данных. Этот процесс может быть довольно разрушительным, особенно когда у нас нет доступа к документации или схемам взаимоотношений.

Существуют ситуации, в которых мы потенциально можем угадать или даже узнать имя столбца, но мы не знаем, в какой таблице он может храниться. Есть много таких случаев (изучение отношений между таблицами без ключей / с ключами и т. Д.).

Представьте себе базу данных, содержащую сотни таблиц. Мы хотим найти таблицы, в которых хранится информация, например, о ценах. Информация о структуре каждого объекта табличного типа может быть извлечена из двух системных представлений - sys.columns и sys.tables.

NorthWind Go USE - как найти имя таблицы, содержащей указанное имя столбца, выберите t. Name as TabName, c. Name as ColName из sys. столбцы c внутренним соединением sys. таблицы t на c. object_id = t. object_id, где c. имя как «% price%»

Этот метод может быть упрощен для достижения того же эффекта с помощью системной функции OBJECT_NAME
Этот метод может быть упрощен для достижения того же эффекта с помощью системной функции OBJECT_NAME.

выберите OBJECT_NAME (c. object_id) в качестве TabName, c. имя как ColName от sys. столбцы c, где c. имя как «% price%»

Схемы информационной схемы (INFORMATION_SCHEMA)

Это стандартизированное (ISO) подмножество общих системных представлений, которые находятся в схеме INFORMATION_SCHEMA. Через них у нас есть доступ к срезу данных, который мы могли бы получить через общие представления системы. Однако объем и объем данных, к которым мы можем обратиться с их помощью, гораздо скуднее.

Основной причиной их существования является попытка облегчить работу администраторов баз данных и приложений, использующих разные системы. Намерение состоит в том, чтобы облегчить нахождение себя в неизвестной среде. Однако это не рекомендуемый способ использования метаданных. Лучше использовать стандартные системные представления. Они гораздо богаче, когда дело доходит до объема информации о структурах. Кроме того, они предоставляют прямой доступ к метаданным (наиболее эффективным).

Небольшой пример - очень общая информация о выбранных таблицах в базе данных Northwind

выберите * из IN FOR MATION_SCHEMA. ТАБЛИЦЫ, где TABLE_NAME, как 'C%'

Обратите внимание, что это представление действительно является производной, подмножеством данных из основных системных представлений: sys
Обратите внимание, что это представление действительно является производной, подмножеством данных из основных системных представлений: sys.tables и sys.views. Таким образом, вы можете получить практически тот же результат:

выберите DB_NAME () как TABLE_CATALOG, SCHEMA_NAME () как TABLE_SCHEMA, NAME как TABLE_NAME, type_desc как TABLE_TYPE от sys. в таблицах, где NAME, например, 'C%', UNION выбирает DB_NAME () в качестве TABLE_CATALOG, SCHEMA_NAME () в качестве TABLE_SCHEMA, NAME в качестве TABLE_NAME, type_desc в качестве TABLE_TYPE из sys. просмотров, где NAME, как 'C%'

Конечно, это всего лишь пример, нацеленный на демонстрацию того, что одно и то же решение может быть достигнуто различными способами
Конечно, это всего лишь пример, нацеленный на демонстрацию того, что одно и то же решение может быть достигнуто различными способами.

Совместимость просмотров

Это представления, известные из версии SQL Server 2000. Доступны в последующих версиях SQL Server, в основном для облегчения миграции / обратной совместимости. Их использование в новых коммерческих системах не рекомендуется. Это не меняет того факта, что для многих они по-прежнему ценны, а с некоторыми (и я) трудно расстаться (например, sys.sysprocesses). Их легко узнать по имени. Они включены в схему sys, и их имя также начинается с sys. Несколько примеров, связанных взглядов «почти» (делает разницу) аналогичными. Фрагменты результатов запроса из представлений:

- старый, SQL Server 2000 - вид совместимости select * from sys. sysdatabases

sysdatabases

выберите * из системы. базы данных

Другой пример, аналогичные системные представления и совместимые представления:
Другой пример, аналогичные системные представления и совместимые представления:

выберите * из системы. sysobjects --old select * from sys. объекты выбираются * из sys. syscomments - старый выбор * из sys. sql_modules выбрать * из системы. CHECK_CONSTRAINTS

Использовать их иначе, чем просто как источник знаний AdHoc (отдельные запросы), бессмысленно, поскольку они должны быть удалены в будущем.
Полную информацию о взаимосвязях между представлениями соответствия и текущими представлениями системы можно найти здесь ,

Динамические представления DMV (динамические представления управления)

Представленные в SQL Server 2005, они являются бесценным источником информации о процессах, счетчиках, знаниях, связанных с производительностью, состоянием базы данных, объектами и самим экземпляром SQL Server. Благодаря им мы можем находить узкие места в системе, выявлять аномалии процессов, статистику и вообще узнавать все о состоянии SQL Server.

Они сгруппированы по объектам и приложениям, к которым они относятся.
Например, вы найдете ряд динамических представлений, связанных с операциями ввода-вывода (группа sys.dm_io), операционной системой SQLOS (группа sys.dm_os) или выполнением запроса \ tasks (sys.dm_exec). Многие из них появляются в виде табличных функций.

Динамические представления также являются отличным источником знаний о статистике или состоянии объектов в базе данных, например фрагментации индекса.

Northwind GO USE - Информация о степени фрагментации индекса в таблице dbo. Орган SELECT a. Index_id, name, avg_fragmentation_in_percent FROM sys. dm_db_index_physical_stats (DB_ID (), OBJECT_ID (N'dbo.Orders '), NULL, NULL, NULL) в качестве системного соединения. индексы AS b ON a. object_id = b. object_id AND a. index_id = b. index_id; GO

index_id;  GO



Новости
    Без плагина
    На сайте WordPress имеется файл, именуемый как .htaccess. Многие пользователи не предают ему особого внимания и не используют все его возможности. На самом деле файл .htaccess – это дополнительные конфигурации

    Плагин подписки wordpress
    Очень трудно найти один плагин подписки wordpress , который объединил бы в себе все виды подписок, которые так необходимы сайту. Именно поэтому я решил сделать подборку лучших плагинов, которые смогут

    Слайд-шоу с помощью плагина для WordPress UnPointZero Slider
    Плагин для cms WordPress UnPointZero Slider – новостной слайдер. Он отражает в форме слайд-шоу изображения со ссылками на ваши статьи и краткие выдержки оттуда. Его можно установить и на новостной сайт,

    Плагины для Wordpress
    С помощью этого плагина вы легко сможете интегрировать Google диск на ваш WordPress сайт или блог . Gravity Forms — лучший плагин для создания форм на WordPress, от самых простых (например, форма

    Подписки плагином JetPack: размещение и редакция формы подписки
    Вступление Здравствуйте! В этой статье я покажу, как использовать плагин JetPack для создания пользовательской формы подписки и как эту формы подписки плагином JetPack добавлять в статьи сайта, а при

    Чистка сайта WordPress плагином WP-optimize
    От автора Со временем использования система WordPress накапливает не нужные файлы, комментарии и неиспользуемые данные в базе данных. Эти файлы и данные создаются в процессе работы и нужны для этого,

    Возможности Jetpack плагина
    Вступление Возможности Jetpack плагина это более 30 функциональных модуля плагина, делающего его универсальным плагином WordPress, заменяющего аналогичные сторонние плагины. Jetpack один заменяет десятки

    Резервное копирование WordPress сайта без плагинов
    Вступление Резервное копирование WordPress это второе, что нужно научиться делать после установки WordPress. Можно сколько угодно говорить о безопасности сайта и его защите, но лучшего варианта защиты

    Плагины на приват для Майнкрафт ПЕ
    > > Плагины на приват для Майнкрафт ПЕ Порой всем нам хочется попробовать себя в роли администратора сервера и испытать эту ответственность, но, к сожалению, вы не всегда все знаете о создании

    Плагин WordPress Database Backup. Архивация базы данных блога на WordPress
    Привет друзья! Сегодня на очереди еще один простой, НО, необходимый и полезный плагин — плагин WordPress Database Backup , который с легкостью и самостоятельно произведет процесс, который научно называется:

  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью