בסדרת המאמרים הבאה (שתהיה כמובן בהמשכים) נסקור כיוונן מעשי של SQL Server 2008/2012/2014, עם פחות התמקדות על הצד התיאורטי, ויותר על הצד המעשי ומתן מענה מהיר ל- DBA העסוק.
הדוגמאות על בסיסי הנתונים AdventureWorks2012 שהותקן ע"ג SQL 2014. נשתמש בScript- העמסה לצורך הדגמה. בהמשך אצלול יותר ויותר עמוק ל- SQL 2014.
במאמר הראשון בסדרה, נסביר איך להתקין את AdvantureWorks2012 בו נשתמש לדוגמאות במאמרים הבאים.
התקנה של AdventureWorks2012 database עבור SQL 2014 כולל תמיכה ב- In Memory Table
א. הורד את ‘AdventureWorks2012-Full Database Backup.zip’ למחיצה לוקלית מאתר השיתוף של מיקרוסופט:
http://msftdbprodsamples.codeplex.com/downloads/get/417885
ב. פתח את קובץ ה- zip במחיצה הלוקלית:
ג. עבור Default instance מחיצת קבצי ה- Data:
D:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA
מחיצת קבצי ה- Log:
D:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Log
ד. נבצע restore ל- database דרך SSMS של SQL 2014 באופן הבא:
RESTORE DATABASE [AdventureWorks2012] FROM DISK = N’D:\Temp1\AdventureWorks2012-Full Database Backup.bak’ WITH FILE = 1, MOVE N’AdventureWorks2012_Data’ TO N’D:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\AdventureWorks2012_Data.mdf’, MOVE N’AdventureWorks2012_Log’ TO N’D:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\log\AdventureWorks2012_log.ldf’ GO
פלט לדוגמא:
בשביל לאפשר תמיכה ב- In Memory Table נריץ את קטע הקוד הבא, שמוסיף Data file Group יעודי בשם AdventureWorks2012_mod באופן הבא:
- מתוך SSMS פתחת חלון שאילה חדשה (New Query בתפריט).
- העתק את קטע הקוד הבא לחלון.
- המשתנה checkpoint_files_location צריך להצביע על מחיצה קיימת בשרת עם הרשאות קריאה כתיבה.
- הרץ את השאילתה כ- Query->SQLCMD Mode
USE [AdventureWorks2012] GO :setvar checkpoint_files_location "D:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\" /*************************** Add MEMORY_OPTIMIZED_DATA filegroup to enable in-memory OLTP ****************************/ IF NOT EXISTS (SELECT * FROM sys.data_spaces WHERE type=‘FX’) ALTER DATABASE CURRENT ADD FILEGROUP [AdventureWorks2012_mod] CONTAINS MEMORY_OPTIMIZED_DATA GO IF NOT EXISTS (SELECT * FROM sys.data_spaces ds JOIN sys.database_files df ON ds.data_space_id=df.data_space_id WHERE ds.type=‘FX’) ALTER DATABASE CURRENT ADD FILE (name=‘AdventureWorks2012_mod’, filename=‘$(checkpoint_files_location)AdventureWorks2012_mod’) TO FILEGROUP [AdventureWorks2012_mod] GO
שנה את ה- Owner של בסיס הנתונים ל- login בשרת SQL Server באופן הבא כאשר domain\user הוא משתמש שקיים ב- Active Directory ומוגדר כ- Login ב- SQL server.
ALTER AUTHORIZATION ON DATABASE::AdventureWorks2012 TO [domian\user]
במאמרים הבאים נתחיל להסתכל על הדרך שבה אנחנו מבצעים טיונינג ונדבר על in-memory database.
דוד יצחק
Latest posts by דוד יצחק (see all)
- MongoDB ל DBA ומפתחים הלכה למעשה – חלק ב - 16/02/2016
- MongoDB ל DBA ומפתחים הלכה למעשה - 07/02/2016
- בדיקת ביצועים של Clustered ColumnStore Index - 06/11/2014
5 תגובות ל- “כוונון ביצועים ב-SQL Server ל-DBA העסוק – חלק 1”
[…] מאמר זה הוא המשך של מאמר קודם בנושא – לחלק 1 לחצו כאן. […]
[…] זה הוא מאמר שלישי בנושא – מומלץ לקרוא קודם את חלק 1 ו- חלק […]
[…] למאמרים הקודמים בסדרה: חלק 1, חלק 2, חלק […]
[…] זה הוא מאמר בסדרה המתגלגלת. לקריאת המאמרים הקודמים: חלק 1, חלק 2, חלק 3, חלק […]
[…] זה הוא מאמר בסדרה המתגלגלת. לקריאת המאמרים הקודמים: חלק 1, חלק 2, חלק 3, חלק […]
השאר תגובה: