نکاتی در رابطه با رشته اتصال SQL Server

نکاتی در رابطه با رشته اتصال SQL Server

نوشته شده توسط: تیم فنی نیک آموز
۰۶ بهمن ۱۴۰۰
زمان مطالعه: 20 دقیقه
۱
(۲)

مقدمه

این مقاله قصد دارد نکات مفیدی در مورد جزئیات استفاده از رشته‌های اتصال SQL ارائه دهد.

رشته اتصال در SQL چیست؟

رشته اتصال شامل پارامترهای لازم برای اتصال برنامه‌های کاربردی به سرور پایگاه‌داده است. در SQL Server، رشته‌های اتصال شامل آدرس سرور، نام پایگاه‌ داده، جزئیات احراز هویت و برخی تنظیمات دیگر برای برقراری ارتباط با سرور پایگاه‌داده است.

دوره کوئری نویسی نیک آموز

نحوه اتصال SQL Server با استفاده از رشته اتصال

ما می توانیم از رشته اتصال زیر برای احراز هویت SQL Server استفاده کنیم. در این نوع رشته اتصال، ما نیاز به تنظیم نام کاربری و رمز عبور داریم.

Server=ServerName;Database=DatabaseName;UserId=UserName;Password=UserPassword;

این نوع استفاده ممکن است باعث کاهش امنیت در برنامه ما شود، بنابراین استفاده از احراز هویت ویندوز می‌تواند امنیت بیشتری را در برنامه‌های ما ایجاد کند. رشته اتصال زیر پایگاه‌داده را با استفاده از احراز هویت ویندوز متصل می‌کند

Server=ServerName;Database=DatabaseName;Trusted_Connection=True;

با کمک کد سی شارپ زیر، می‌توانیم نحوه استفاده از یک‌رشته اتصال را در یک برنامه ببینیم.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
namespace TestConnectionString
{
class Program
{
static void Main(string[] args)
{
using (SqlConnection conn = new SqlConnection("Server=localhost;Database=SQLShackDemo;User Id=SuperHero;Password=1pass;"))
{
conn.Open();
Console.WriteLine("Connection is just opened");
System.Threading.Thread.Sleep(10000);
conn.Close();
}
}
}

}

ما می‌توانیم جزئیات اتصال را با استفاده از View dm_exec_sessions در SQL Server مشاهده کنیم.

SELECT
session_id
,program_name,
last_request_start_time,
last_request_end_time,
language,
date_format ,(select name from sys.databases where database_id =11) as ConnectedDatabase
FROM sys.dm_exec_sessions
where login_name ='SuperHero'
and is_user_process=1

نحوه تغییر زبان در رشته اتصال SQL

SQL Server اجازه می‌دهد تا تنظیمات زبان را برای جلسات تغییر دهید. این گزینه پیام‌های سیستم و قالب‌های تاریخ در جلسه را تغییر می‌دهد. می‌توانیم با استفاده از ویژگی Language گزینه زبان را در رشته اتصال تغییر دهیم. در رشته اتصال SQL زیر، زبان پیش‌فرض را به زبان لهستانی تغییر می‌دهیم.

Server=localhost;Database=SQLShackDemo;UserId=SuperHero;Password=1pass;Language=Polish

نحوه تغییر نام برنامه در رشته اتصال SQL

نام برنامه (Application Name) به شما کمک می‌کند تا به‌راحتی تشخیص دهید کدام برنامه به SQL Server متصل می‌شود. می‌توانیم اسم برنامه را تغییر دهیم یا نامی در رشته اتصال به برنامه بدهیم.

Server=localhost;Database=SQLShackDemo;UserId=SuperHero;Password=1pass; Application Name=SuperApp

نحوه تغییر نام برنامه در رشته اتصال SQL

نام برنامه (Application Name) به شما کمک می‌کند تا به‌راحتی تشخیص دهید کدام برنامه به SQL Server متصل می‌شود. می‌توانیم اسم برنامه را تغییر دهیم یا نامی در رشته اتصال به برنامه بدهیم.

Server=localhost;Database=SQLShackDemo;UserId=SuperHero;Password=1pass; Application Name=SuperApp

رشته اتصال SQL و ترکیب چند اتصال

ایجاد یک اتصال جدید یک کار برای متمرکز ساختن منبع برای موتور SQL است؛ بنابراین، SQL Server از مکانیسم ادغام اتصال برای خلاص شدن از شر این کار پرزحمت استفاده می‌کند. تنظیمات پیش‌فرض مخزن اتصال آماده است، بنابراین، برای فعال‌کردن این گزینه نیازی به تغییر چیزی نیست. با این ‌حال، ما می‌توانیم این گزینه را به‌آسانی در رشته اتصال تنظیم کنیم.

Server=localhost;Database=SQLShackDemo;UserId=SuperHero;Password=1pass;ApplicationName=SuperApp;Workstation ID=SuperNova;Pooling=true

مخزن اتصال را می‌توان به یک کش اتصال تشبیه کرد زیرا در این مفهوم کار SQL Server به‌جای ازبین‌بردن اتصالاتی که وظایف آنها به پایان رسیده است، ذخیره انواع رشته‌های اتصال و انتخاب از میان آنها است. هنگامی که کاربر یک اتصال جدید با یک‌رشته اتصال منطبق را درخواست می‌کند، pooler به دنبال یک اتصال موجود در استخر می‌گردد که با آن رشته اتصال مطابقت دارد. اگر هنگام جستجو در استخر یک اتصال را بر اساس معیارهای منطبق پیدا کند، این اتصال آماده را به این درخواست برمی‌گرداند. هنگامی که برنامه یک سیگنال برای بستن اتصال ارسال می‌کند، به‌جای بستن اتصال، پیامی به استخر اتصال ارسال می‌کند. در کد سی شارپ، ۷ اتصال جدید درخواست می‌کنیم و یک کوئری بسیار ساده را اجرا می‌کنیم.

وقتی این برنامه کنسول را اجرا می‌کنیم، ۲ استخر اتصال ایجاد می‌کند. ۳ اتصال اول در یک استخر اتصال قرار می‌گیرند و ۲ اتصال دوم را در استخر دیگری قرار می‌گیرند.

این عمل را می‌توان با استفاده از شمارشگرهای عملکرد ارائه‌دهنده داده فریم‌ورک دات نت برای SQL Server در PerfMon مشاهده کرد. پارامتر NumberOfActiveConnectionPools تعداد استخرهای اتصال را نشان می‌دهد و NumberOfPooledConnections نشان می‌دهد که چند اتصال در این استخرها مدیریت می‌شود.

دلیل تولید دو استخر اتصال مجزا، تفاوت نام اپلیکیشن در رشته‌های اتصال است.عدم تشابه رشته اتصالات باعث ایجاد حوضچه‌های اتصال جداگانه می‌شود. مانند نام‌های مختلف پایگاه‌داده، انواع احراز هویت، و سایر تفاوت‌ها باعث ایجاد استخرهای اتصال مختلف می‌شود. حوضچه‌های اتصال تا زمانی که فرایند فعال به پایان برسد یا از طول عمر اتصال فراتر نباشند، از بین نمی‌روند. ما می‌توانیم طول عمر اتصال را در رشته اتصال تنظیم کنیم و تعیین کنیم که چه مدت یک اتصال در استخر اتصال نگه‌داشته شود.

Server=localhost;Database=SQLShackDemo;UserId=SuperHero;Password=1pass; Application Name=SuperApp;Workstation ID=SuperNova;Pooling=true; Connection Lifetime=100

به‌عنوان نمونه در برنامه ما یک اتصال ششم و هفتم در انتهای کد داریم که درخواست اتصال آنها از استخر اتصال داده می‌شود. به‌منظور نظارت بر همه این فرایندهای پیچیده، می‌توانیم از یک رویداد توسعه‌یافته (Store Procedure) استفاده کنیم. ما می‌توانیم رویدادهای ورود/خروج را ضبط کنیم و همچنین رویداد rpc_completed را نیز دریافت می‌کنیم. پس از شروع برنامه، صفحه (Store Procedure) به‌صورت زیر نمایش داده می‌شود:

همان‌طور که گفتیم ۵ اتصال اول یک اتصال جدید ایجاد می‌کند و به دلیل نام‌های مختلف برنامه، سرور SQL دو استخر اتصال ایجاد می‌کند. هنگامی که اتصال ششم درخواست اتصال می‌کند، این اتصال از اولین مخزن اتصال داده می‌شود زیرا رشته‌های اتصال آنها مشابه است. همچنین این مورد برای اتصال هفتم معتبر است. اتصال هفتم از استخر اتصال دوم داده می‌شود. اگر مقدار is_cached درست باشد، به این معنی است که اتصال از مخزن اتصال داده شده است و این مقدار برای اتصال ششم و هفتم صحیح به نظر می‌رسد. می‌بینیم که رویه sp_reset_connection بعد از رویداد خروج اجرا می‌شود. به روش خروج از سیستم و ورود به سیستم event گفته می‌شود زیرا وضعیت اتصال را بازیابی می‌کند.

نتیجه گیری

در این مقاله، ما برخی از جزئیات را در مورد رشته اتصال SQL بررسی کرده‌ایم. همان‌طور که آموختیم، تنظیمات مختلف رشته‌های اتصال می‌توانند رفتارهای اتصال را تغییر دهند.

منبع

https://www.sqlshack.com/sql-connection-strings-tips

چه رتبه ای می‌دهید؟

میانگین ۱ / ۵. از مجموع ۲

اولین نفر باش

title sign
دانلود مقاله
نکاتی در رابطه با رشته اتصال SQL Server
فرمت PDF
6 صفحه
حجم 1 مگابایت
دانلود مقاله
title sign
معرفی نویسنده
تیم فنی نیک آموز
مقالات
248 مقاله توسط این نویسنده
محصولات
0 دوره توسط این نویسنده
تیم فنی نیک آموز
پروفایل نویسنده
title sign
معرفی محصول
title sign
دیدگاه کاربران

هر روز یک ایمیل، هر روز یک درس
آموزش SQL Server بصورت رایگان
همین حالا فرم زیر را تکمیل کنید
دانلود رایگان جلسه اول
نیک آموز علاوه بر آموزش، پروژه‌های بزرگ در حوزه هوش تجاری و دیتا انجام می‌دهد.
close-link
جشنواره عیدآموز نیک آموز، سال جدید رو با قدرت شروع کن
مشاهده تخفیف ها
close-image