دسته بندی مقالات
- بیشتر -محصولات
- بیشتر -آخرین مقالات
- بیشتر --
کنترل radioButton در سی شارپ
1404/07/07 -
System View در SQL Server
1404/07/07 -
کنترل richTextBox در سی شارپ
1404/07/06 -
کنترل propertyGrid در سی شارپ
1404/07/05 -
Graph Tables در Sql Server
1404/07/04 -
File Tables در Sql Server
1404/07/03
System View در SQL Server

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ها را به دستههای مختلف تقسیم کرده است:
-
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
بهصورت پیشفرض 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
-
امکان حذف یا تغییر مستقیم وجود ندارد
-
بعضی از ویوها فقط با مجوزهای مدیریتی (مثل 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 بسازد، ولی میتواند ویوهای کاربری مبتنی بر آنها طراحی کند.
حذف: ویوهای سیستمی حذف نمیشوند، فقط ویوهای کاربری قابل حذف هستند.
کاربرد: مدیریت دیتابیس، مانیتورینگ عملکرد، عیبیابی و گزارشگیری.
دوره های مرتبط

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