"

System View در SQL Server

تیم تحریریه 1404/07/07 0 12
لینک کوتاه https://zoheirsoftware.com/z/ff7820cbe |
System View در SQL Server,انواع System View در SQL Server,   ایجاد System View در Sql

System View در SQL Server

در SQL Server، ویوها (Views) یکی از پرکاربردترین ابزارها برای ساده‌سازی کوئری‌ها و ارائه داده‌ها به شکل خواناتر هستند.

به‌طور کلی ویو یک آبجکت مجازی است که نتیجه یک کوئری را مثل یک جدول در اختیار ما قرار می‌دهد. در میان انواع ویوها، دو دسته اصلی وجود دارد:

  • User-defined View (ویوهایی که توسط کاربر ایجاد می‌شوند)

  • System View (ویوهای سیستمی که خود SQL Server به‌صورت پیش‌فرض ایجاد کرده است)

در این متن تمرکز ما بر روی System View خواهد بود: اینکه چیست، چرا اهمیت دارد، چگونه می‌توان با آن‌ها کار کرد، و در صورت نیاز چگونه حذف یا تغییر داد.

 

مفهوم System View  در SQL Server

System Viewها مجموعه‌ای از ویوهای از پیش ساخته‌شده هستند که SQL Server برای نمایش اطلاعات مربوط به ساختار دیتابیس، متادیتا، تنظیمات، کاربران، جداول، ایندکس‌ها، لاگ‌ها و سایر اجزای داخلی ارائه می‌دهد.

این ویوها در واقع رابطی برای دسترسی به جداول سیستمی هستند که درون دیتابیس Master و دیگر دیتابیس‌های سیستمی ذخیره می‌شوند.

چون جداول سیستمی مستقیم قابل استفاده نیستند، مایکروسافت System Viewها را معرفی کرده تا کاربرها بدون دستکاری مستقیم جداول، به اطلاعات مدیریتی و سیستمی دسترسی داشته باشند.

 

مفهوم System View  در SQL Server

انواع System View در SQL Server

مایکروسافت System Viewها را به دسته‌های مختلف تقسیم کرده است:

  • Catalog Views

این ویوها اطلاعات مربوط به آبجکت‌های دیتابیس مثل جداول، ستون‌ها، ایندکس‌ها و غیره را برمی‌گردانند.

مثال: sys.tables, sys.columns, sys.indexes

  • Compatibility Views

برای سازگاری با نسخه‌های قدیمی SQL Server طراحی شده‌اند.

مثال: sys.sysobjects, sys.syscolumns

  • Dynamic Management Views (DMVs)

برای مانیتورینگ و بررسی وضعیت لحظه‌ای SQL Server استفاده می‌شوند.

مثال: sys.dm_exec_requests, sys.dm_exec_sessions

  • Information Schema Views

استاندارد ANSI SQL را رعایت می‌کنند و برای دسترسی به متادیتاها مفیدند.

مثال: INFORMATION_SCHEMA.TABLES, INFORMATION_SCHEMA.COLUMNS

 

انواع System View در SQL Server

ایجاد System View در Sql

به‌صورت پیش‌فرض System Viewها توسط SQL Server ساخته می‌شوند و ما نمی‌توانیم آن‌ها را مستقیماً ایجاد کنیم.

اما اگر بخواهیم یک ویو مشابه System View بسازیم که اطلاعات سیستمی را ترکیب یا سفارشی کند، می‌توانیم یک ویو User-defined ایجاد کنیم که از جداول یا ویوهای سیستمی استفاده کند.

مثال: ایجاد یک ویو برای نمایش اطلاعات جدول‌ها

CREATE VIEW dbo.MySystemView AS

SELECT

t.name AS TableName,

c.name AS ColumnName,

ty.name AS DataType

FROM sys.tables t

INNER JOIN sys.columns c ON t.object_id = c.object_id

INNER JOIN sys.types ty ON c.user_type_id = ty.user_type_id;

 

با اجرای کوئری:

SELECT * FROM dbo.MySystemView;

 

می‌توان اطلاعاتی شبیه به یک System View بدست آورد.

 

 

 

 

🌟 آیا می‌خواهید به یک متخصص پایگاه داده تبدیل شوید و در دنیای فناوری اطلاعات بدرخشید؟

با دوره آموزشی SQL Server ما، شما می‌توانید به راحتی و با روشی عملی، تمام مهارت‌های لازم را یاد بگیرید!

این دوره به شما آموزش می‌دهد که چگونه داده‌ها را به بهترین شکل مدیریت کنید، گزارش‌های قدرتمند بسازید و به تحلیل‌های عمیق دست یابید.

با محتوای جذاب و پروژه‌های واقعی، شما نه تنها تئوری را یاد می‌گیرید، بلکه توانایی‌های عملی خود را نیز تقویت می‌کنید.

پس فرصت را از دست ندهید! همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده شغلی روشن‌تر بردارید!

 ⇐همین حالا شروع کنید و به دنیای داده‌ها بپیوندید!

 

 

 

حذف System View  در Sql

System Viewهای داخلی SQL Server قابل حذف نیستند، چون جزئی از هسته سیستم هستند.

اما اگر ویوی کاربری ایجاد کرده باشیم که بر پایه System Viewها ساخته شده باشد، می‌توانیم آن را حذف کنیم.

 

مثال: حذف ویو کاربری

DROP VIEW dbo.MySystemView;

 

⚠️ نکته: هیچ‌گاه ویوهای سیستمی اصلی مانند sys.objects یا INFORMATION_SCHEMA.TABLES قابل حذف یا تغییر مستقیم نیستند.

 

کاربردهای مهم System View  در  Sql

  • مدیریت دیتابیس

بررسی لیست جدول‌ها، ستون‌ها و روابط

مثال:

SELECT * FROM sys.tables;
  • مانیتورینگ عملکرد

مشاهده جلسات فعال، کوئری‌های در حال اجرا، مصرف CPU و Memory

مثال:

SELECT * FROM sys.dm_exec_sessions;

 

 

  • ایجاد گزارش‌های مدیریتی

استخراج اطلاعات ساختاری برای مستندسازی دیتابیس

مثال:

 

SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Users';

 

  • عیب‌یابی (Troubleshooting)

پیدا کردن ایندکس‌های بلااستفاده یا جداول سنگین

مثال:

SELECT * FROM sys.dm_db_index_usage_stats;

 

مزایای System View در Sql

  • دسترسی راحت به متادیتای دیتابیس

  • استاندارد و قابل‌اعتماد بودن (همیشه موجود در SQL Server)

  • قابلیت استفاده در کوئری‌های ترکیبی

  • کمک به عیب‌یابی و مانیتورینگ لحظه‌ای

 

مزایای System View در SQL Server

 

 

معایب System View در Sql

  • امکان حذف یا تغییر مستقیم وجود ندارد

  • بعضی از ویوها فقط با مجوزهای مدیریتی (مثل sysadmin) قابل دسترسی‌اند

  • برخی ویوها حجم زیادی از داده را برمی‌گردانند که ممکن است عملکرد را کند کنند

 

تفاوت System View و User-defined View

یکی از سوالات متداول این است که چه تفاوتی بین ویوی سیستمی و ویوی تعریف‌شده توسط کاربر وجود دارد.

  • System View

    • توسط خود SQL Server ایجاد شده است.
    • حذف یا تغییر مستقیم آن ممکن نیست.

هدف اصلی: نمایش متادیتا و اطلاعات داخلی سیستم.

 

  • User-defined View

    • توسط توسعه‌دهنده یا DBA ایجاد می‌شود.
    • قابلیت ویرایش و حذف دارد.

هدف اصلی: ساده‌سازی کوئری‌ها، جداسازی لایه‌ی دسترسی به داده و بهبود امنیت.

 

مثال User-defined View

CREATE VIEW vwActiveUsers AS

SELECT UserID, UserName, LastLogin

FROM Users

WHERE IsActive = 1;

 

 

در این مثال، ما یک ویو برای نمایش کاربران فعال ساختیم.

در حالی که System Viewها چنین کاربرد مستقیمی برای داده‌های تجاری ندارند، بلکه بیشتر بر متادیتا تمرکز می‌کنند.

جمع‌بندی

System Viewها در SQL Server ابزاری قدرتمند برای مدیریت، مانیتورینگ و دسترسی به اطلاعات سیستمی هستند.

آن‌ها جایگزین دسترسی مستقیم به جداول سیستمی شده‌اند و با دسته‌بندی‌هایی مثل Catalog Views، Dynamic Management Views و Information Schema Views نیازهای مختلف مدیران و توسعه‌دهندگان را پوشش می‌دهند.

ایجاد: کاربر نمی‌تواند مستقیماً System View بسازد، ولی می‌تواند ویوهای کاربری مبتنی بر آن‌ها طراحی کند.

حذف: ویوهای سیستمی حذف نمی‌شوند، فقط ویوهای کاربری قابل حذف هستند.

کاربرد: مدیریت دیتابیس، مانیتورینگ عملکرد، عیب‌یابی و گزارش‌گیری.

دوره های مرتبط
آموزش Sql,آموزش sqlserver, آموزش جامع Sqlserver

آموزش پایگاه داده SqlServer

پایگاه داده Sqlserver یکی از پایگاه داده های مهم برای ذخیره اطلاعات محسوب میشود .

997,000 تومان

3.3k بازدید

ارسال دیدگاه

برای ارسال نظر لطفا ورود یا ثبت نام کنید.