برای مشاهده یافته ها از کلید Enter و برای خروج از کلید Esc استفاده کنید.

کوئری های کاربردی در SQL Server – قسمت دوم

در این آموزش و سلسله آموزش هایی که با این عنوان منتشر خواهد شد سعی می شود کاربردی ترین کوئری های SQL Server که ممکن است برنامه نویسان یا متخصصان پایگاه داده بارها مورد استفاده قرار دهند آموزش داده شود. در این آموزش موارد زیر را یاد خواهیم گرفت:

  • مشخص کردن تعداد رکوردهای متاثر از آخرین دستور اجرا شده
  • گرفتن Identity بعد از درج رکورد
  • گرفتن سال به شکل yyyy-mm-dd
  • مشخص کردن پنجشنبه و جمعه در شرط کوئری
  • مشخص کردن آخرین زمان ریست شدن سرویس SQL Server
  • مشاهده متن یک پراسیجر یا ویوو
  • مشاهده اطلاعات مربوط به یک جدول، ویوو، پروسیجر و …
  • مشاهده مشخصات سرویس های SQL
  • جستجو در دستورات جاب ها
  • مشاهده سنگین ترین کوئری های در حال اجرا بر اساس CPU Time

مشخص کردن تعداد رکوردهای متاثر از آخرین دستور اجرا شده

SELECT @@ROWCOUNT

یک دستور کاربردی که می توان بعد از دستورات delete ، insert ، update و … استفاده کرد.

مثال:

USE AdventureWorks2017
GO  

UPDATE HumanResources.Employee 
SET JobTitle = N'Executive'  
WHERE NationalIDNumber = 123456789  

IF @@ROWCOUNT = 0  
	PRINT 'Warning: No rows were updated'

گرفتن Identity بعد از درج رکورد

SELECT SCOPE_IDENTITY()

مثال:

INSERT Person.AddressType
(
    Name, rowguid, ModifiedDate
)
VALUES
( 
	'test12', NEWID(), GETDATE() 
)

SELECT SCOPE_IDENTITY()

گرفتن سال به شکل yyyy-mm-dd

SELECT CONVERT(CHAR(10),GETDATE(),126)

مشخص کردن پنجشنبه و جمعه در شرط کوئری

IF DATEPART(WEEKDAY,GETDATE()) NOT IN (5,6)
	PRINT 'No Holiday'
ELSE
	PRINT 'Holiday'

مشخص کردن آخرین زمان ریست شدن سرویس SQL Server

SELECT sqlserver_start_time FROM sys.dm_os_sys_info

مشاهده متن یک پراسیجر یا ویوو

EXEC sp_helptext '[dbo].[uspGetManagerEmployees]'

بهتر است قبل از اجرا  دکمه Result to text  در بالای صفحه Management Studio را فعال کنید تا خروجی کوئری را به شکل Text مشاهده نمایید

مشاهده متن پروسیجر و ویوو

مشاهده اطلاعات مربوط به یک جدول، ویوو، پروسیجر و …

USE AdventureWorks2017
GO

EXEC sp_help '[Sales].[SalesOrderHeader]'

اگر نام جدول به عنوان ورودی داده شود اطلاعات مفیدی همچون زمان ایجاد جدول، نام فیلدها و نوع داده ایی هر کدام از آن ها ، کلیدهای خارجی ، ایندکس ها و … را نمایش می دهد.

مشاهده مشخصات سرویس های SQL

SELECT * FROM sys.dm_server_services

این dmv اطلاعات مفیدی از جمله نام اکانت اجرا کننده سرویس ها، وضعیت سرویس ها، مسیر فایل ها و … را نمایش می دهد

جستجو در دستورات جاب ها

SELECT j.name , js.command , j.enabled 
FROM msdb.dbo.sysjobsteps js
	 INNER JOIN msdb.dbo.sysjobs j ON j.job_id = js.job_id
WHERE js.command LIKE '%truncate%'

مشاهده سنگین ترین کوئری های در حال اجرا بر اساس CPU Time

SELECT r.session_id, DB_NAME(r.database_id) DatabaseName, t.text, r.start_time, r.status ,r.wait_type, r.wait_time, r.cpu_time, r.reads, r.writes, r.logical_reads, r.total_elapsed_time 
FROM sys.dm_exec_requests r
	 CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) t
WHERE r.session_id <> @@SPID
ORDER BY cpu_time DESC

برای مشاهده جزئیات بیشتر می توانید به لینک یافتن پر هزینه ترین کوئری های در حال اجرا مراجعه نمایید.


امیدوارم این آموزش برای خوانندگان گرامی مفید واقع شود. لطفا با ارائه نظرات ، سوالات و پیشنهادات خود به بالا بردن کیفیت مطالب آموزشی و همچنین ایجاد دلگرمی برای ادامه مسیر آموزش به ما کمک نمایید. همچنین می توانید با عضویت در کانال تلگرام IranSQL از جدیدترین مقالات و فیلم های آموزشی با خبر شوید.

اشتراک گذاری با دیگران
  •  
  •  
  •  
  •  
  •