יום חמישי, 25 בספטמבר 2008

Cumulative update package 1 for SQL Server 2008

The first cumulative update for SQL Server 2008 has been shipped. It can be downloaded here:
Cumulative Update 1 contains hotfixes for the Microsoft SQL Server 2008 issues that have been fixed since the release of SQL Server 2008.

יום שלישי, 16 בספטמבר 2008

RECOMPILE

כאשר אנו מריצים משפט T-SQL מול שרת בסיס הנתונים, ה- MSSQL ראשית מחפש ב- procedure cache האם הרצתי כבר את המשפט בעבר, והאם יש לי execution plan כבר מוכן.
במידה ואין לי – ה- MSSQL מייצר עבורי את execution plan ומריץ את השאילתא,
במידה ויש לי – ה- MSSQL משתמש ב- execution plan הקיים ומריץ את השאילתא.

ישנם מקרים בהם אני לא מעוניין שה- SQL server ישתמש ב- execution plan הקיים , אלה אני רוצה לאלץ אותו לבנות עבורי execution plan חדש.

כיצד ניתן לבצע זאת?

1. ניתן להוסיף ישירות לקוד את ה- hint - WITH RECOMPILE, לדוגמא:
CREATE PROCEDURE dbo.uspProductByVendor @Name varchar(30) = '%'
WITH RECOMPILE
AS
SELECT v.Name AS 'Vendor name', p.Name AS 'Product name'
FROM Purchasing.Vendor AS v
JOIN Purchasing.ProductVendor AS pv
ON v.VendorID = pv.VendorID
JOIN Production.Product AS p
ON pv.ProductID = p.ProductID
WHERE v.Name LIKE @Name;
GO


2. ניתן להוסיף לפקודת הרצת הפרוצדורה את ה- hint - WITH RECOMPILE , לדוגמא:

exec search_orders_3 @orderid = 11000 WITH RECOMPILE



3. בפלטפורמת SQL server 2005 ניתן גם להוסיף לשאילתא את HINT :
OPTION (RECOMPILE)

בהצלחה !

יום ראשון, 31 באוגוסט 2008

SQL 2008 - Activity monitor

כידוע חברת מייקרוסופט שיחררה בתקופה האחרונה גרסה רשמית ראשונה של פלטפורמת SQL SERVER 2008.
הגרסה החדשה מאופיינת במספר של שיפורים, כגון: דחיסת נתונים, שיפור ביצועים, שירותי ניתוח מתקדמים ושיפור ה- GUI ועוד.
במסגרת הבלוג אני אעדכן אתכם ביכולות החדשות של הפלטפורמה החדשה .
והפעם, Activity monitor .

היכולת החדשה מאפשרת לנו מנהלי בסיסי הנתונים לנהל טוב יותר את השרת, לזהות צווארי בקבוק, סטאטוס השרת, טרנזקציות פעילות, כמות CPU ו- i\o ועוד.

ישנם 2 אפשרויות לפתוח את ה- Activity monitor :
1. קליק ימני על השרת בכלי הניהול
2. דרך סרגל הכלי

מסך ה- Activity monitor מחולק ל- 5 קטגוריות :

1. Overview – בחלק זה ניתן לראות נתונים בזמן אמת של ה- CPU , IO ועוד בשרת בסיס הנתונים :
2. Processes – בחלק זה ניתן לראות את פירוט הטרנזקציות כרגע בבסיסי הנתונים (כמובן שניתן לבצע סינון, וסידור מחדש של העמודות) :
3. Resource waits – בחלק זה ניתן לראות את פירוט ההמתנות בשרת. (בעזרת מסך זה ניתן לזהות צווארי בקבוק בשרת).
4. Data file IO – בחלק זה לקבל פירוט אודות כמות ה- IO ברמת קבצי בסיסי הנתונים.
5. Recent expensive queries – בחלק זה ניתן לקבל מידע אודות TOP הטרנזקציות בבסיס הנתונים. כמובן שניתן לבצע סינון ומיון לפי זמני תגובה , IO ועוד.
בהצלחה !

יום חמישי, 21 באוגוסט 2008

SQL SERVER 2008

שלום רב,

ב – SQL server 2008 ישנם שיפורים רבים בנושאים שונים כגון: כלי הניהול, אבטחה, שיפור ביצועים, אחסון המידע, ניטור ו- audit .

להלן דוגמאות לחלק מהשיפורים חדשים :

1. Policy – מנגנון ליישום ה- policy של הארגון בשרתי בסיס הנתונים.
ניתן להגדיר policy ברמת שרת בסיס הנתונים, לדוגמא: שמות אובייקטים, רמות אבטחה וכו'.
אחרי שקובעים את ה- policy השונים ניתן לבצע מספר פעולות:
a. ניתן למנוע פעולות הסותרות את ה- policy
b. ניתן לקבל התראות במייל כאשר אחד האובייקטים לא עומד ב- policy שהגדרנו (בשרת שלנו, ובשאר השרתים בארגון)
c. JOB מתוזמן אשר בודק את ה- policy בבת אחת לכמה שרתים
d. הפצת ה- policy בקלות ובמהירות לשרתים שונים בארגון
e. בדיקות יזומות לשרתים שהם עומדים ב- policy – ניתן לבצע גם בדיקות מול גרסאות שונות של MSSQL.

2. Performance data collection – הינו מנגנון חדש אשר כולל בסיס נתונים אשר אוגר ומנהל את כל נושא הביצועים של השרת המקומי ושרתים אחרים.
המנגנון שומר מידע בנוגע לשאילתות שרצו מאז ומתמיד, מדדי CPU ו- IO, דיסקים, זמני תגובה ועוד...
המנגנון כולל סט של דוחות דינמיים ומעמיקים מאוד , אשר בעזרתם ניתן לתחקר את ההיסטוריה של השרת.
המנגנון גם כולל – כלי לניהול – הגדרת זמני ניטור, הגדרת שמירת מידע ישן וכו'...

3. New activity monitor – מנגנון המציג נתוני שרת ב- real time – ייצא הסבר ב- veracitip הבא.

4. Resource governor – מנגנון לניהול משאבים בבסיס הנתונים.
בעזרת המנגנון ניתן להגדיר לכל משתמש (רק ברמת משתמש בשונה מה- more) בבסיס הנתונים את כמות המשאבים שהוא יקבל.
המנגנון עובד ב- real time – כלומר: ניתן להגדיר ולשנות את הפרמטרים בזמן אמת לטרנזקציה.

5. גיבוי עם כיווץ – בשונה מ- hyperbac לא ניתן לבצע שחזור של אובייקט בודד.

6. Change tracking – מנגנון מובנה לניטור שינויים בטבלאות בסיסי הנתונים.
כל שינויי בסכמה וב- DATA נרשם לטבלת LOG אשר ניתן בסופו של דבר לקבל דוח המציג:
מי שינה, מתי, באיזו עמודה (לא ניתן לראות את הנתון שהשתנה).
המנגנון כולל כלי לניהול – ניקוי אוטומטי של טבלאות ה- LOG וכו'...

7. Change data tracking – מנגנון המאפשר שמירת מידע של גרסאות.
כלומר: כל שינוי ב- DATA בטבלאות, המנגנון שומר את הנתון הישן והחדש + מי שינה ומתי וכו'...

8. תמיכה ב- data type מסוג blob .

9. שיפורים בנושאי אבטחה:
a. שיפור בניהול המפתחות לבסיסי נתונים מוצפנים.
b. הצפנה ברמת בסיס הנתונים כולו – ניתן לבצע שחזור לבסיס נתונים או ביצוע attach רק עם מפתח.
c. הפרדת המפתחות מה- DATA (בשונה מ- 2005)

10. Enhanced auditing – מנגנון מובנה לניטור כל הפעילויות בבסיס הנתונים.
כל שליפה (מי שלף, מה, מתי , מאיפה) , עדכון, מחיקה נשמרת הפעולה בטבלת LOG.

11. Mirroring :
a. שיפור התעבורה ברשת ב- 250%
b. תיקון page דפוקים מהשרת המשני – אוטומטי – פתרון מעולה ל- corruption .

12. יכולת עבודה מול בסיסי נתונים גדולים:
דחיסת מידע ברמת ה- page ב- 60% ויותר.
Data type מקומפרסים (vardecimal)

13. Filtered indexes – יצירת אינדקס עם where !! יחזיק מידע מוגבל – משפר ביצועים, מקטין אינדקסים.

בהצלחה !

יום רביעי, 20 באוגוסט 2008

Sql 2008 intellisense

כידוע חברת מייקרוסופט שיחררה בתקופה האחרונה גרסה רשמית ראשונה של פלטפורמת SQL SERVER 2008.
הגרסה החדשה מאופיינת במספר של שיפורים, כגון: דחיסת נתונים, שיפור ביצועים, שירותי ניתוח מתקדמים ושיפור ה- GUI ועוד.
במסגרת הבלוג אני אעדכן אתכם ביכולות החדשות של הפלטפורמה החדשה .
והפעם, Sql 2008 intellisense .

היכולת החדשה מאפשרת השלמה אוטומטית של קוד ה- TSQL ב- management studio .


ראשית, יש לאפשר את היכולת ß קליק ימני על מסך השאילתא, וביצוע enable.

להלן מספר דוגמאות של היכולת החדשה:
השלמה של עמודות
השלמה עם aliases של טבלאות
השלמה של משתנים
השלמה של טבלאות

היכולת החדשה משפרת ומייעלת את כתיבת הקוד בבסיס הנתונים, מונעת טעויות כתיב של שמות אובייקטים ועוד.

בהצלחה!