‏הצגת רשומות עם תוויות שיפור ביצועים. הצג את כל הרשומות
‏הצגת רשומות עם תוויות שיפור ביצועים. הצג את כל הרשומות

יום שני, 22 בפברואר 2016

ניהול ותחזוק בסיס נתונים באופן מושלם - איך עושים את זה?

ירידה בביצועי בסיס הנתונים הוא תרחיש שגרתי שלא תמיד מתקיים בגלל שינוי מכוון בבסיס הנתונים, האפליקציה או התשתית. איך ניתן להתמודד איתו בצורה אופטימלית?
מצורף קישור למאמר שכתבתי שפורסם בנושא:

יום רביעי, 1 בינואר 2014

Top 10 Tips for Optimizing SQL Server Performance

Read “Top Ten Tips for Optimizing SQL Server Performance”by SQL Server experts Patrick O'Keeffe and Richard Douglas, where they discuss 10 of the most important things you should know about SQL Server performance. Each item is a nugget of practical knowledge that you can immediately apply to your environment.
With this valuable advice, you’ll be able to:

10. Facilitate comparisons of workload behavior with benchmarking.
9. Use performance counters to quickly get useful information about currently running operations.
8. Understand why changing server settings usually yields limited returns.
7. Identify performance bottlenecks quickly with DMVs.
6. Learn to use SQL Profiler and traces.
5. See why SANs are more than just I/O.
4. Prevent cursors and other bad T-SQL from returning to haunt applications.
3. Maximize plan reuse for better SQL Server caching.
2. Read the SQL Server buffer cache and how to minimize cache thrashing.
1. Master indexing by learning how indexes are used and how to counteract the characteristics of bad indexes.

https://software.dell.com/whitepaper/top-10-tips-for-optimizing-sql-server-performance821654/

יום שני, 27 בדצמבר 2010

MoreVRP Keeps your SQL Server DB in Shape without Cramping your Business Users



We all know that the secret to staying healthy and fit depends on regular, routine exercise and good maintenance habits. The same is true for our database. But how can we ensure that our routine database workouts not interfere with or delay our business?


Throughout the work week different end-users interact with the database to conduct their urgent business activities. They insert new data and run numerous varied complex transactions using a variety of applications that combine and integrate data from different sources. Sales teams enter new customer and pricing data; engineering teams change product attributes and configurations. Logistics clerks repeatedly update the database with RFID devices that transmit loads of status information from the warehouse. Consuming this varied and heavy diet while running back and forth and at the same time concentrating on difficult calculations would give anyone indigestion, especially our MS SQL Server database, with its very sensitive stomach, special dietary requirements and lean frame….



So each week we invite our SQL Server database to the fitness center for a long workout. The DBA carefully goes through the checklist, executing index and stats maintenance procedures, checking for index fragmentation or duplication that are likely to tire the database and slow it down.


Usually the DBA carries out the weekly maintenance routine on the weekend when fewer end-users need the database active. Nevertheless, we all recall the times that the database hasn’t finished its maintenance workout on-time, causing many anxious end-users to congregate around the coffee machines on Monday morning waiting for the tired database to let them get their new work week started.



What can you do to empower your database to better mobilize its resources in order to carry out all the urgent business tasks you need to do in parallel to its time-consuming yet vital maintenance routines? More IT offers you the unique wonder drug that will revitalize your database – MoreVRP! Only MoreVRP, sometimes referred to as “APM on Steroids”, can get inside the database to reallocate its resources and prevent the loads that cause database indigestion, letting it concurrently execute end-user transactions while more slowly doing its maintenance routines without interrupting your business.


There are many vendors that offer a wealth of health check monitors that will measure how tired your database is, as well as sophisticated exercise machines that let your DBAs assign more and more routine exercises and training to keep your database fit.


Only MoreVRP gives your SQL Server db the resource management “muscle” you need to keep your business going strong! For more details, check out our solution on

www.morevrp.com


יום חמישי, 22 באפריל 2010

סיפור לקוח : כא”ל לנהל נכון

שלום רב,

לאחרונה סיימתי לנהל ולבצע פרוייקט גדול בחברת ויזה כא"ל במסגרת חברת וראסיטי, פרוייקט מוצלח זה פורסם לאחרונה גם על-ידי מייקרוסופט כסיפור לקוח.

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

כתוצאה, רמת הביצועים של המערכות היתה נמוכה מהרצוי, התשלום עבור הרישוי היה גבוה מהנדרש, עלות התחזוקה היתה גבוהה (חומרה ותוכנה) ורמת הזמינות לא היתה אופטימלית.

"ביקשנו להשיג את היכולת לספק ניהול מרכזי, שירותי גיבוי מרכזיים, ניטור מלא של המערכות ורמת עדכון מלאה - כדי להבטיח ביצועים גבוהים ושרידות מלאה של הנתונים, לצד עלויות ניהול, תחזוקה ותפעול נמוכות יותר", מתאר עוזי דביר, רמ"ד תשתיות בסיסיות ב-Cal.

ב-Cal ביצענו פרויקט שבמסגרתו רוכזו היישומים לסביבת מחשוב מרכזית בתצורת Cluster, מבוססת Windows Server 2003/2008 ו-SQL Server 2005/2008 (גרסאות 2008 הושקו במהלך הפרויקט, שארך כשנה). כשותף מבצע נבחרה חברת ורסיטי, לאחר שהוכיחה מקצועיות ושירותיות ברמה גבוהה בפרויקטים קודמים ב-Cal. "הם הוכיחו יכולת לעמוד ביעדי זמן ותקציב, וידענו כי מובטחת לנו המשכיות לאורך זמן" מוסיף דביר.

"כתוצאה מהמהלך, מספר השרתים הפיזיים הצטמצם בצורה משמעותית - והוא מקיף כיום פחות ממחצית מסך השרתים הקודם", אומר איתי בנימין, מנהל פרויקטים ו-DBA בוראסיטי, ומציין: "כחלק מהפרויקט, אף בוצעה הפרדה מסודרת לסביבות עבודה נפרדות - Development, Testing ו-Production, דבר שלא היה קיים בעבר".

http://www.microsoft.com/israel/casestudies/cal1.mspx

יום שלישי, 15 בדצמבר 2009

EXCEPT and INTERSECT

שלום רב,

ישנם פעמים בהם ישנו לנו 2 מקורות מידע (שאילתות, טבלאות וכו'...) אשר אנו רוצים לדעת אילו רשומות קיימות במקור הראשון ולא נימצאות במקור השני.
או לחילופי- אנו רוצים לדעת אילו רשומות קיימות בשני המקורות.

לשם כך קיימות הפקודות INTERSECT ו- EXCEPT .

EXCEPT - מציגה את הרשומות אשר נימצאות במקור הראשון ולא נימצאות במקור השני.
INTERSECT - מציגה את הרשומות אשר נימצאות בשני המקורות.

לדוגמא:

USE AdventureWorks;
GO
SELECT ProductID
FROM Production.Product
INTERSECT
SELECT ProductID
FROM Production.WorkOrder ;
--Result: 238 Rows (products that have work orders)

או

USE AdventureWorks;
GO
SELECT ProductID
FROM Production.Product
EXCEPT
SELECT ProductID
FROM Production.WorkOrder ;
--Result: 266 Rows (products without work orders)

שימושי ויעיל מאוד!

בהצלחה!

יום ראשון, 29 במרץ 2009

מחיקת מספר אובייקטים במשפט אחד

כידוע ישנם מספר חידושים ושיפורים בפלטפורמת sql server 2005 ו- 2008 . החידושים הינם ברמת ה- agent , t-sql , management studio ועוד.. , בטיפים הקרובים veracity תסקור מספר חידושים שימושיים ומעניינים.

והפעם – מחיקת מספר אובייקטים במשפט אחד
בעזרת היכולת ניתן לייעל את פקודת ה- drop לאובייקטים.

לדוגמא, לאחר שיצרנו את האובייקטים הבאים :

USE AdventureWorks
GO
CREATE PROCEDURE SP1 AS
BEGIN
SELECT TOP 10 * FROM Person.Address
END
GO

CREATE PROCEDURE SP2 AS
BEGIN
SELECT TOP 10 * FROM Person.Address
END
GO

CREATE PROCEDURE SP3 AS
BEGIN
SELECT TOP 10 * FROM Person.Address
END
GO

CREATE PROCEDURE SP4 AS
BEGIN
SELECT TOP 10 * FROM Person.Address
END
GO

על מנת למחוק אותם, ניתן להריץ מספר פעמים את פקודת ה- drop:

USE AdventureWorks
GO
DROP PROCEDURE SP1
DROP PROCEDURE SP2
GO

אך ניתן לייעל את הקוד ולכתוב מעכשיו כך:

USE AdventureWorks
GO
DROP PROCEDURE SP3,SP4
GO

שימו לב שמהיום ניתן לשפר את העבודה ולמחוק אובייקטים בצורה מהירה ויעילה יותר!

בהצלחה !!

יום ראשון, 4 בינואר 2009

Management Studio 2008 suggests missing indexes

כידוע אחד מהיכולות החדשות שהיו ב- SQL 2005 הינה ה- dynamic management objects .
אחת מהן הייתה sys.dm_db_missing_index_details אשר מציגה המלצות בנוגע לאינדקסים חסרים אשר יש ליצור בבסיס הנתונים ע"פ הסטטיסטיקות שנאספו עד כה.

ב- SQL 2008 לקחו צעד אחד קדימה את נתוני מנגנון ה- missing indexes וכעת ניתן לראות את המידע כחלק אינטגראלי מה- Actual Execution Plan ב- SSMS 2008 .

לדוגמא:




כאשר מריצים את השאילתא הבאה עם אופציית Actual Execution Plan.
ניתן לראות את נתוני ה- missing indexes בקצה העליון.




About the Missing Indexes Feature:
http://msdn.microsoft.com/en-us/library/ms345524.aspx

בהצלחה!

יום חמישי, 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 !! יחזיק מידע מוגבל – משפר ביצועים, מקטין אינדקסים.

בהצלחה !

יום שישי, 18 בינואר 2008

Client statistics

בעיה :

למי מאיתנו לא יצא לשבת מול קוד SQL ולשפר את ביצועיו ?
כיצד ידעתם שבאמת שיפרתם את ביצועיו ?
כיצד יכולתם להשוות את ביצועיו מריצה לריצה ?


פתרון:

אנשי מייקרוספט בפלטפורמת MS-SQL2005 חשבו גם הם הבעיה, ולהן הפתרון:
כאשר אתה מריץ שאילתא לצורכי בדיקת ביצועים ומבחן , קליק ימני על השאילתא :

ובחר את האפשרות : include clients statistics .

מעכשיו SQL 2005 יצבור נתונים וסטיסטיקות בנוגע לריצות המבחן שלך, ויתעד עבורך את הנתונים עבור כל ריצה.

כך תוכל להשוות את ביצועי הריצות על מנת להגיע לתוצאה הטובה ביותר.


תהנו !!