0% found this document useful (0 votes)
3 views65 pages

Session 02

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views65 pages

Session 02

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 65

‫دوره ‪SQL Server‬‬

‫ویژه برنامهنویسان‬

‫جلسه دوم‬
‫‪www.NikAmooz.com‬‬
‫معرفی مسعود طاهری‬
‫• مسئول واحد توسعه پایگاه دادهها در شرکت خدمات نوین سداد (‪ PSP‬بانک ملی)‬
‫• کارشناس ارشد تحليل و طراحی شرکت تجارت الکترونيک پارسيان (‪ PSP‬بانک پارسيان)‬
‫•مشاور ‪ SQL Server‬در سازمان کشتيرانی‬
‫• مشاور ‪SQL Server‬در شرکت مهندسی رایورز و سازمان بورس و اوراق بهادار تهران‬
‫• برگزاري دوره هاي متعدد ‪ SQL Server‬براي سازمان هاي مختلف مانند‬
‫‪ .1‬سازمان بورس و اوراق بهادار تهران‪.‬‬
‫‪ .2‬شرکت پارس آنالین‬
‫‪ .3‬شرکت مهندسی نرمافزار رایورز و‪...‬‬
‫• مدرس محصول پرفروش سایت نيک آموز (جنون سرعت در ‪)SQL Server‬‬
‫• متخصص‪ ،‬مدرس و مشاور ‪ SQL Server‬و مباحث فوق پيشرفته بانک اطالعاتی‪.‬‬
‫بررسی معماری‬
‫‪SQL Server‬‬
‫بررسی فایلهای تشکیل دهنده بانک اطالعاتی‬

‫فایلهاي تشکيل دهنده بانک اطالعاتی‬


‫‪Database‬‬

‫‪Data File‬‬

‫‪Log File‬‬
Disk, Memory, Processor ‫ با‬SQL ‫تعامل‬
Processor Memory

‫ها‬Page ‫پردازش‬ Buffer Pool


Processor ‫توسط‬ 8KB 8KB ‫ها‬Page ‫انتقال‬
8KB 8KB 8KB 8KB Memory ‫به‬
8KB 8KB

Disk
Data File
Log File
Database
8KB 8KB
8KB 8KB
8KB 8KB8KB 8KB
8KB 8KB
8KB 8KB8KB 8KB
8KB 8KB
8KB 8KB8KB 8KB
8KB 8KB
8KB 8KB
‫‪ Buffer Pool‬چیست؟‬
‫‪ -1‬بخشی از حافظه ‪ RAM‬متعلق به ‪SQL Server‬‬

‫‪ -2‬محل قرارگيري ‪Page‬ها‬


‫‪ -3‬پر مصرفترین بخش حافظه‬

‫‪8KB‬‬ ‫‪8KB‬‬ ‫‪8KB‬‬ ‫‪8KB‬‬


‫‪8KB‬‬ ‫‪8KB‬‬ ‫‪8KB‬‬ ‫‪8KB‬‬
Write Ahead Logging ‫بررسی مکانیزم‬
Processor Memory

Change Buffer Pool


Request 8KB 1 Locking & Latching
8KB 8KB
2 8KB 8KB
pregnant
3

Disk Data File


Log File
Database
8KB 8KB
8KB 8KB
8KB 8KB8KB 8KB
8KB 8KB
8KB 8KB8KB 8KB
8KB 8KB
8KB 8KB8KB 8KB
8KB 8KB
8KB 8KB
‫‪ Check Point‬چیست؟‬
‫‪ -1‬انتقال ‪Page‬هاي موجود در ‪ Buffer Pool‬به دیسک‬
‫‪ -2‬اجرا به صورت اتوماتيک‬
‫‪pregnant‬‬

‫‪ -3‬اجرا به وسيله دستور ‪CheckPoint‬‬


‫معرفی بانکهای‬
‫اطالعاتی سیتسمی‬
‫‪ System Database‬چیست؟‬
‫‪ -1‬ایجاد شده توسط ‪SQL Server‬‬
‫‪ -2‬نگهداري ‪Meta Data‬‬
‫نگهداري اطالعاتی درباره سایر اشياء بانک اطالعاتی‬ ‫‪-3‬‬
System Database ‫انواع‬
‫بسته به شرایط ایجاد میگردد‬ Instance ‫قابل دسترس به ازای هر‬

Master
Distribution
Msdb
ReportServer
Tempdb
ReportServerTempDB
Model
DQS_...
Resource *
‫معرفی بانک اطالعاتی ‪Master‬‬
‫‪ -1‬مهمترین بانک اطالعاتی سيستمی‬
‫‪ -2‬سرویس ‪ SQL‬وابسته به ‪Master‬‬
‫‪ -3‬نگهداري نام ‪ +‬مشخصات سایر ‪DB‬ها‬
‫‪ -4‬نگهداري ‪Server Side Object‬ها‬
‫معرفی بانک اطالعاتی ‪Msdb‬‬
‫‪ -1‬سرویس ‪ Agent‬وابسته به ‪Msdb‬‬
‫‪ -3‬نگهداري کليه تنظيمات ‪Agent Service‬‬
‫‪ -4‬نگهداري ‪Backup & Restore History‬‬
‫‪ -5‬نگهداري ‪ Alter, DTA, DB Mail‬و‪...‬‬
‫معرفی بانک اطالعاتی ‪TempDB‬‬
‫‪ -1‬پایگاه داده موقت‪ ،‬چرکنویس ‪SQL‬‬
‫‪ -2‬مکان ذخيرهسازي موقت‬
‫‪ -3‬مورد استفاده براي عمليات …‪Sort,‬‬
‫‪Service‬‬ ‫‪ -4‬پاک شدن محتوي با ‪ Rest‬شدن‬
‫معرفی بانک اطالعاتی ‪Model‬‬
‫الگو جهت ساخت سایر بانکها‬

‫‪Your‬‬ ‫الگوی برای سایر‬


‫بانکهای اطالعاتی‬ ‫‪Model‬‬
‫‪Database‬‬
‫معرفی بانک اطالعاتی ‪Resource‬‬
‫‪ -1‬بانک اطالعاتی از نوع ‪Read-Only‬‬
‫‪ -2‬مورد استفاده در پروسه ‪Upgrade‬‬
‫‪ -3‬نگهداري اطالعات کليه اشياء سيستمی‬
‫‪ -4‬ماهيت بانک به صورت فایل است‪.‬‬
‫معرفی بانک اطالعاتی ‪Distributaion‬‬
‫مورد استفاده در فرآیند ‪Replication‬‬

‫محل قرارگیری بانک‬


‫اطالعاتی ‪Distribution‬‬
‫ایجاد بانک اطالعاتی‬
‫بررسی فایلهای بانک اطالعاتی‬
Database ‫وجود چند فایل به ازاي هر‬
Database

Primary Data File


(*.mdf) Data File 01
Log File 01
Secondary Data File Log File
Data File 02
(*.ndf) (*.ldf)
Log File 02
Data File 03
‫تعیین مشخصههای مربوط به فایلها‬
Data File , Log File ‫تعيين مشخصههاي‬
Property SQL Server ‫كلمه كلیدی در‬
Logical Name )‫ (نام منطقی‬Name
Physical Name )‫ (نام فایل‬FileName
Size )‫ (اندازه فایل‬Size
Max Size )‫ (حداكثر اندازه فایل‬MaxSize
File Growth )‫ (نحوه رشد فایل‬FileGrowth
Create Database ‫بررسی دستور‬
CREATE DATABASE DbName ON
[
(
[NAME= LogicalName, FILENAME= 'PhysicalName',
[,SIZE= Size] [,MAXSIZE= MaxSize | UNLIMITED]
[,FILEGROWTH= Growth]
) [,...n]
[LOG ON
(
[NAME= LogicalName, FILENAME= 'PhysicalName',
[,SIZE= Size] [,MAXSIZE= MaxSize | UNLIMITED]
[,FILEGROWTH= Growth]
)[,...n]
]
Database ‫بررسی نحوه رشد فایلهای‬

'C:\Dump\TEST01.mdf'
)100MB * 10%( ‫اضافه شدن‬

Initialize Size Size Max Size = Unlimited


100MB 10MB File Growth=10%
‫ایجاد یک بانک اطالعاتی با چند فایل‬
Data File , Log File ‫تعيين مشخصههاي‬
Database

Data File 01
Log File 01
Data File 02
Log File 02
Data File 03
‫ها‬Data File ‫نحوه پخش شدن داده در‬
Round-Robin ‫استفاده از الگوریتم‬
Database

Data File 01
Log File 01
Data File 02
Log File 02
Data File 03
‫انجام عملیات بر روی‬
‫فایلهای ‪Database‬‬
‫ جدید‬Data/Log File ‫اضافه کردن‬
Database
‫تعيين مشخصههاي فایل جدید‬
Data File 01
Log File 01
Data File 02
Log File 02
‫ جدید‬Data File ‫اضافه شدن‬ Data File 03

Data File 04
Data/Log File ‫ویرایش مشخصههای‬
Database
‫ویرایش مشخصههاي یک فایل‬
Data File 01
Size ‫ ویرایش‬-1
Log File 01
FileGrowth ‫ ویرایش‬-2
Data File 02
Loggical Name ‫ ویرایش‬-3
Log File 02
Data File 03

Data File 04
Data File ‫حذف‬
Database
Data File ‫حذف‬
Data File 01
Log File 01
Data File ‫حذف‬ Data File 02
‫امکان حذف به صورت عادی‬ Log File 02
!‫وجود ندارد‬ Data File 03

Data File 04
Data/Log File ‫حذف‬
Database
‫روش حذف یک فایل‬
‫ انتقال محتواي فایل به سایر فایلها‬-1 Data File 01
Log File 01
‫ حذف فایل‬-2 Data File 02
Log File 02
Data File 03

Data File 04
‫انجام عملیات بر روی‬
‫‪Database‬‬
‫حذف بانک اطالعاتی‬
‫‪ -1‬بانک اطالعاتی در اختيار کاربران نباشد‬

‫‪ -2‬حذف اتوماتيک فایلهاي ‪Database‬‬


‫تغییر نام بانک اطالعاتی‬
‫‪ -1‬بانک اطالعاتی نباید در اختيار کاربران باشد‬
‫‪ -2‬عدم تاثير بر روي فایلهاي بانک اطالعاتی‬
‫‪ Read-Only‬کردن بانک اطالعاتی‬
‫‪ -1‬بانک اطالعاتی فقط خواندنی است‪.‬‬
‫‪ -2‬امکان تغيير دادهها وجود ندارد‪.‬‬
‫تک کاربره‪/‬چنده کاربره کردن بانک اطالعاتی‬

‫تک کاربره ‪Single User :‬‬


‫چند کاربر ‪Multi User :‬‬
‫‪ Offline/Online‬کردن بانک اطالعاتی‬
‫‪ -1‬بانک اطالعاتی در دسترس نمیباشد‪.‬‬
‫‪ -2‬بانک اطالعاتی در اختيار ‪SQL Service‬‬
‫‪( Compatibility‬درجه سازگاری)‬ ‫تنظیم ‪Level‬‬
‫‪ -1‬شماره مخصوص هر نسخه از ‪SQL Server‬‬
‫‪ -2‬استفاده بانک اطالعاتی از قابليتهاي نسخه مورد نظر‬
‫جابجایی مسیر فایلهای ‪Database‬‬
‫جابجایی مسير فایلها‬
‫‪Database‬‬
‫‪ Offline -1‬کردن بانک اطالعاتی‬
‫‪ -2‬تغيير مسير در سطح ‪SQL Server‬‬ ‫‪Data File 01‬‬
‫‪Log File 01‬‬
‫‪ -3‬تغيير مسير در سطح سيستم عامل‬ ‫‪Data File 02‬‬
‫‪Log File 02‬‬
‫‪ Online -4‬کردن بانک اطالعاتی‬ ‫‪Data File 03‬‬

‫‪Data File 04‬‬


‫نکاتی در جهت‬
‫افزایش سرعت‬
Database ‫افزایش سرعت کار با فایلهای‬

‫ در دیسک جداگانه‬Log File ‫ و‬Data File ‫ قرار دادن‬-1


Data File

Database

Data File

Log File
Log File
Database ‫افزایش سرعت کار با فایلهای‬

Instance Initialization ‫ فعالسازي‬-2


It allows file allocation requests to
skip zero initialization on creation.
Database ‫افزایش سرعت کار با فایلهای‬

Data File , Log File ‫ براي‬RAID 10 ‫ استفاده از‬-3


0.5 MB

1MB RIAD Controller

0.5 MB
Database ‫افزایش سرعت کار با فایلهای‬

Data File , Log File ‫ براي‬RAID 10 ‫ استفاده از‬-3

Data File Log File


RAID 10 RAID 10
Database ‫افزایش سرعت کار با فایلهای‬

Strip Size=64KB , Allocation Unit Size=64KB -4


‫افزایش سرعت کار با فایلهای ‪Database‬‬

‫‪ -5‬ایجاد چند ‪ Data File‬براي بانک اطالعاتی‬


‫‪Database‬‬
‫‪ -1‬ایجاد یک‪/‬چند ‪ Data File‬براي ذخيره دادهها‬
‫‪ -2‬ایجاد یک‪/‬چند ‪ Data File‬براي ذخيره ایندکسها‬
‫‪Data File 01‬‬
‫‪ -3‬ایجاد یک‪/‬چند ‪ Data File‬براي ‪....‬‬
‫‪Data File 02‬‬ ‫‪Log File 01‬‬
‫مفهوم ‪ File Group‬در نظر گرفته شود‪.‬‬
‫‪Data File 03‬‬
‫آشنایی با‬
File Group
‫ چیست؟‬File Group
‫ دستهبندي منطقی فایلها‬: ‫ هدف‬-1
‫ها‬Data File ‫ مورد استفاده‬-2
Test01

Data File
01
FileGroup01 Data File
Log File
01
02
Log File
‫ برای‬File Group ‫مفهوم‬
02 .‫ها وجود ندارد‬Log File
Data File
03 Log File
FileGroup02 Data File
02

04
File Group ‫بررسی انواع‬
Primary File Group
Data File Group
User Defined File Group

File Group ‫انواع‬ Filestream File Group

Memory Optimized File Group


‫‪ Primary File Group‬چیست؟‬
‫‪ -1‬فایل گروه پيش فرض بانک اطالعاتی‬
‫‪ -2‬محل قرار گيري جداول سيستمی‬
‫‪ -3‬محل قرار گرفتن جداول تعریف شده توسط کاربر‬

‫‪ -4‬اضافه شدن ‪ Data File‬جدید در این فایل گروه‬


‫ چیست؟‬User Defined File Group
‫فایل گروههاي تعریف شده توسط کاربر‬
Primary File Group
User Defined File Group

Secondary File Group


User Defined File Group
‫نکات کاربردی درباره‬
‫‪File Group‬‬
File Group ‫ پخش شدن دادهها در‬-1

FG ‫پخش شدن به صورت جداگانه مابين هر‬


Test01

Data File
01

File Group
Primary
Data File
02
Data File Log File
03 01

Use Defined
Data File

File Group
04
Data File
05
File Group ‫ در هر‬Data File ‫ رشد‬-2

Max Size ‫ها به‬Data File ‫ رسيدن تمام‬: ‫جهت رشد‬


Test01

‫رسیدن به‬ Data File


Max Size 01

File Group
Primary
Data File
02
Data File Log File
03 01
Use Defined

Data File
File Group

04
Data File
05
File Group ‫ ایجاد جداول در هر‬-3

FG ‫پخش شدن به صورت جداگانه مابين هر‬


Test01

Data File
01

File Group
Primary
Data File
02
Data File Log File
03 01

Use Defined
Data File

File Group
04
Data File
05
File Group ‫ یکپارچه در نظر گرفتن فایلهای عضو هر‬-4

.‫ یکپارچه است‬FG ‫ هاي عضو هر‬Data File


‫حتی اگر در درایوهاي و دیسکهاي مختلف باشند‬ Test01

C:\Database\Test01_DATA1.mdf Data File


01

File Group
Primary
Data File
D:\Database\Test01_DATA2.mdf 02
Data File Log File
E:\Database\Test01_DATA3.mdf 03 01

Use Defined
Data File

File Group
04
Data File
05
‫‪ -5‬وجود حداکثر یک ‪ File Group‬پیشفرض‬

‫فایل گروه پيشفرض محل ذخيره سازي جداول ‪ +‬ایندکسها‬


‫به صورت پيشفرض‬
‫دالیل استفاده از‬
‫‪File Group‬‬
‫ جدا کردن جداول از یکدیگر‬-1

.‫ میشود‬IO ‫جدا سازي جداول باعث تعدیل‬


Test01

Data File
01

File Group
Primary
Data File
02
Data File Log File
03 01

Use Defined
Data File

File Group
04
Data File
05
‫ جدا کردن ایندکسها از دادهها‬-2

.‫ میشود‬IO ‫جدا سازي ایندکسها از جداول باعث تعدیل‬


Test01

Data File
01

File Group
Primary
Data File
02
‫ایندکس‌های‌سیستم‌حسابداری‬ Data File Log File
03 01

Use Defined
Data File

File Group
04
Data File
05
DB ‫ کردن بخش خاصی از‬Read-Only -3

...‫ (قفلگذاري) و‬Lock ‫حذف مباحث مربوط به‬


Test01
1393 ‫دادههاي سال‬
Read-Only Data File
Size : 10GB 01

File Group
Primary
Data File
02
Data File Log File
03 01

1394 ‫دادههاي سال‬

Use Defined
Data File

File Group
Size : 3GB 04
Data File
05
‫‪ -4‬جدا سازی جداول سیستمی از جداول غیر سیستمی‬
‫قبل از جداسازي جداول سيستمی‬

‫بعد از جداسازي جداول سيستمی‬


DB ‫ از بخش خاصی از‬Backup ‫ تهیه‬-5

‫کاهش حجم نسخه پشتيبان‬


Test01
1393 ‫دادههاي سال‬
Data File
Size : 10GB 01

File Group
Primary
Data File
02
Data File Log File
03 01

1394 ‫دادههاي سال‬

Use Defined
Data File

File Group
Size : 3GB 04
Data File
05
‫نحوه استفاده اصولی از‬
‫‪File Group‬ها‬
‫نحوه استفاده اصولی از ‪File Group‬ها‬

‫(‪)Primary File Group‬‬ ‫‪ -1‬فایل گروه جهت ذخيره جداول سيستمی‬


‫‪ -2‬فایل گروه جهت ذخيره جداول پروژه‬
‫بررسی در درسهاي آینده‬ ‫‪ -3‬فایل گروه جهت ذخيره ‪LOB‬ها‬
‫‪ -4‬فایل گروه جهت ذخيره ‪Index‬ها‬
‫ها‬File Group ‫نحوه استفاده اصولی از‬

Your Database

Data File
‫محل نگهداری جداول سیستمی‬ Primary File Group
01

Data File
‫محل نگهداری جداول غیر سیستمی‬ Data File Group 02
Log File
Data File
‫محل نگهداری ایندكسها‬ Index File Group 03

Data File
‫ها‬LOB ‫محل نگهداری‬ Index File Group
04
‫از همراهی شما سپاسگزاریم‬

You might also like