مجله اینترنتی بیر کلیک فناوری رایانه آموزش استفاده از جداول موقت در SQL Server

آموزش استفاده از جداول موقت در SQL Server

0
3
88
آموزش استفاده از جداول موقت در SQL Server
لینک کوتاه مطلب : http://birclick.ir/qZOGW

آموزش استفاده از جداول موقت  در SQL Server

آموزش استفاده از جداول موقت  در SQL Server

یکی از قابلیت های SQL Server این است که شما می توانید بدون ساخت Database ، جداولی را ایجاد کرده و با آن ها کار کنید. به این جداول اصطلاحاً جداول موقت یا Temporary Tables می گویند.  با مجله اینترنتی بیرکلیک همراه شوید تا نحوه استفاده از جداول موقت  در SQL Server را به صورت عملی برایتان شرح دهیم . با ما همراه شوید .

ایجاد جدول موقت : 

آموزش استفاده از جداول موقت در SQL Server
آموزش استفاده از جداول موقت در SQL Server

برای ایجاد جداول موقت کافیست به صورت زیر یک جدول موقت ایجاد کنید:

Create Table #TempUsers
(
[Id] int identity not null primary key,
[Username] nvarchar(200) not null,
[Password] nvarchar(100) not null,
[PasswordSalt] nvarchar(32) not null
);
Go

دقت کنید که برای ساخت جداول موقت نیازی به ساخت Database نیست ، کافیست در ابتدای نام جدول علامت # قرار دهید. حال، به راحتی می توان به صورت زیر در این جداول مقدار ریخت و از آن ها query گرفت :

Insert Into #TempUsers values (N’Amir YZ’,N’123′,N’123′);
Insert Into #TempUsers values (N’Atrisa BM’,N’123′,N’123′);

 و به صورت زیر از این جدول می توانیم Query بگیریم :

Select * From  #TempUsers

برای مثال ، فرض کنیم می خواهیم از چند جدول اطلاعات را کوئری گرفته و در یک جدول موقت درج کنید تا بتوانیم بر روی آن عملیات های مورد نظرمان را انجام دهیم، برای اینکار به راحتی یک جدول موقت ایجاد کرده و اطلاعات را از یک جدول دیگر به صورت زیر می توانیم درج کنیم :

Create Table #TempUsers
(
[Id] int identity not null primary key,
[Username] nvarchar(200) not null,
[Password] nvarchar(100) not null,
[PasswordSalt] nvarchar(32) not null,
[FirstName] nvarchar(200) null,
[LastName] nvarchar(200) null
);
Go

Insert Into #TempUsers (Username,Password,PasswordSalt,FirstName,LastName)

Select
u.Username,
u.Password,
u.PasswordSalt,
up.FirstName,
up.LastName
From Users u

Inner Join UserProfiles up on up.UserId = u.Id

Select * From #TempUsers Where Username LIKE N’Amir%’

کلیه جداول موقت در SQL Server، در Database ای با نام tempdb که جزو Database های پیش فرض SQL Server می باشد ایجاد می شوند . این بانک در زمان نصب SQL Server به صورت خودکار ایجاد می شود . یکی از قابلیت های جداول موقت این است که این جداول با اتمام کار (به اتمام رسیدن عملیات های Transaction) از tempdb حذف می شوند.

موارد استفاده از Temp Table ها : 

آموزش استفاده از جداول موقت در SQL Server
آموزش استفاده از جداول موقت در SQL Server

حتی الامکان می بایست از Temp Table ها استفاده نشود . زیرا علاوه بر این که سر بار زیادی بر روی SQL می گذارند . Performance را نیز پایین می اورند . تنها در برخی استفاده از temp Table ها مانعی ندارد . برخی از این استثنا ها عبارتند از :

الف) هنگامی که بخواهیم نتیجه یک Query را از یک Nested Stored Procedure به Stored Procedure دیگری منتقل کنیم که در این صورت تنها راه حل ممکن استفاده از Temp Table ها است .

ب) در صورتی که بخواهیم در Stored Procedure از Cursor استفاده کنیم . با توجه به سرعت پایین Cursor ها می توان از Temp Table ها به عنوان راه حل استفاده نمود .

ج) سعی کنید فقط فیلد هایی را که نیاز دارید در Temp Table درج نمایید.

د) از دستور Select Into برای ایجاد Temp Table استفاده نکنید بلکه ابتدا با استفاده از دستور Create Table جدول مجازی را ایجاد کنید و سپس با استفاده از دستور Insert Into رکورد های مورد نظر را در آن درج نمایید .

ه) حتما سعی کنید از Clustered و non-Clustered Index ها در Temp Table ها استفاده نمایید . ( مخصوصا هنگامی که تعداد رکوردهای موجود در Temp Table ها بسیار زیاد باشد)

و) حتما پس از استفاده از Temp Table ها ان را حذف کنید ( در این صورت فضای Tempdb ازاد می شود) و هرگز منتظر نباشید تا با قطع شدن Connection بطور اتوماتیک tempdb حذف شود .

ز) در صورتی که استفاده از Temp Table ها در برنامه هایتان زیاد است بهتر است با تنظیمات SQL server مسیر ان را به یک دیسک مجزا منتقل کنید تا فضای اصلی کمتر اشغال گردد.

ح) هرگز Temp Table ها را در Transaction ها ایجاد نکنید چرا که در این صورت برخی از جداول سیستمی (sysindex , syscolumn , syscomments) در حالت Lock باقی می مانند و عملا تا پایان Transaction ازاد نمی شوند و بنابراین بسیاری از دستورات که توسط کاربران دیگر صادر می شود تا پایان Transaction غیر قابل اجرا خواهد بود . برای جلوگیری از این مشکل بهتر است قبل از Transaction ان را ایجاد کنید تا جداول سیستمی Lock نشوند .

امیدوارم که مورد توجه دوستان عزیز قرار گرفته باشد .

به اشتراک بگذارید...
بارگذاری مقالات بیشتر مرتبط
بارگذاری بیشتر توسط امیر
بارگذاری بیشتر در رایانه

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

چهار × 2 =

اینم جالبه

ترفندهایی برای حرفه ای شدن در مسنجر واتس آپ

ترفندهایی برای حرفه ای شدن در مسنجر واتس آپ مسنجر واتس آپ : اپلیکیشن واتساپ یا واتس اپ (Wh…