2019-10-10

Azure SQL DB tiers Short Overview

שלום לכולם
היום אסקור בקצרה את ה tiers השונים לבחירת DB.
במילה tiers מסתתרת משמעות רחבה מאד, טווח רחב מאד של אפשרויות ביצועים.
בפוסט שפרסמתי בחודש מרץ ביצעתי השוואות ביצועים בין tiers שונים:
http://www.sqlazure.co.il/2019/03/azure-sql-db-tiers-comparison.html

והיום אציג טבלה ובה החומרה מתחת לפני השטח נכון להיום!
כידוע יש 2 קבוצות שונות של שרתים שאפשר לבחור עבור Azure SQL DB

  1. DTU
  2. vCore

כאשר באפשרות הראשונה אין אפשרות לבחור קומבינציה של רכיבים - פשוט  בוחרים:
 Basic\Standard1..12\Premium1...15
שזה שוני שנובע מ Local SSD

וכאשר באפשרות השנייה יש אפשרות לבחור בין סוגי CPU שונים
Gen 4 / Gen 5
Gen 4 CPUs are based on Intel E5-2673 v3 (Haswell) 2.4 GHz processors
Gen 5 CPUs are based on Intel E5-2673 v4 (Broadwell) 2.3 GHz processors

שזה גם משפיע על כמות ה RAM
והאם
Busines critical \ General purpose
שגם זה שוני שנובע מ Local SSD
תחת vCore - יש אפשרות לבצע תשלום מראש לכמה שנים ובכך לחסוך המון כסף למי שמשתמש ב  vCore (ועל זה בפעם אחרת)

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

מכיוון שאי אפשר לכמת מה יש תחת DTU מבחינת חומרה להלן ההשוואה

 
Tier CPU RAM in GB
s0   1, 1
s1   1, 2
s2   1, 2
s3   2, 9
s4   4, 19
s6   6, 28
s7   12, 56
s9   24, 113
s12  44, 173
p1   2, 9
p2   4, 19
p4   6, 28
p6   12, 56
p11  18, 82
p15  42, 171
GeneralPurpose GP_Gen4_1 1, 4
GeneralPurpose GP_Gen4_24 24, 80
GeneralPurpose GP_Gen5_80 80, 190

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

https://docs.microsoft.com/en-us/azure/sql-database/sql-database-service-tiers-general-purpose-business-critical

את המידע שלפתי לפי השאילתא הבאה:
 
-- CPU assigned to database
SELECT
scheduler_id, cpu_id, status, is_online
FROM sys.dm_os_schedulers
WHERE status = 'VISIBLE ONLINE'
-- Memory allocated to database
SELECT  *, cntr_value / 1024/1024 AS RAM_in_GB
FROM sys.dm_os_performance_counters
WHERE counter_name LIKE '%Target Server Memory%'
 
 
 

2019-08-20

Auto Pause in Azure SQL Database Serverless

שלום לכולם
והפעם נציג את האפשרות שבסיס הנתונים יהיה ב - Pause. ובכך העלות על ה Compute לא יתבצע אלא רק העלות על Storage.
עד היום אם רציתם בסיס נתונים בעלות נמוכה וגם כשהוא לא פעיל היה אפשר לשים אותו או ב
tier - basic
or in Standard 0
שהעלות שלו היא הגונה 15 דולר לחודש על 250 ג'יגה.
מיקרוסופט הציעו סוג חדש שכשהוא לא פעיל x שעות הוא נכנס למצב של pause ואז אין עלות אלא על storage.
בחישוב מהיר שלי עולה כי אם בסיס הנתונים קטן מ 90 ג'יגה והוא לא פעיל רוב הזמן כדאי לעבור אליו.
איך זה עובד?
אם הוא מזהה 0 DTU במשך הזמן שהוגדר הוא קופא, בפניה הראשונה מקבלים שגיאה.
ואז בפניה השנייה אחרי שממתינים כמה שניות בסיס הנתונים דלוק.

התהליך פשוט:
הולכים למסך קונפיגורציה
בוחרים את Serveless
מגדירים תוך כמה שעות ללא פעילות הוא ייכנס למצב pause.
מגדירים מינימום cpu ומקסימים cpu.
מגדירים כמה storage יוקצה.
וזהו.
מצורפים המסכים הבאים:
  1. מסך ההגדרה עצמו.
  2. מסך של בסיס נתונים פעיל
  3. מסך של בסיס נתונים שנעצר
  4. מסך של שגיאה מ SSMS בחיבור.
ומסכים של המסך הראשי - בו יש גרף טיפה אחרת שמציג מידע רלווטי - למשל cpu וגם האם הוא במצב של עצירה.
וגם מסך שמציג שגיאה בחיבור ראשוני.

אלו 2 לינקים רלוונטיים בנושא

נסו ותהנו.








 

2019-08-06

sp_whoisactive of Adam Machanic at GitHub is now support Azure SQL DB

sp_whoisactive is a very helpful monitoring sp used by almost ever SQL Server DBA. It was written by Adam Machanic. 

It provide a lot of data showing what is running in your server and the resources being consumed.

Adam & his great team have saved us many hours of work - Thank you Adam!!!
I have been waiting for many years for this SP to be compatible with SQL Azure. 
In previous versions when we tried running it on Azure SQL DB we got this error:
"Msg 40515, Level 15, State 1, Procedure sp_WhoIsActive, Line 16 [Batch Start Line 7]Reference to database and/or server name in 'msdb.dbo.sysjobs' is not supported in this version of SQL Server." on (v10.76)
In the SP it called MSDB and since we do not have MSDB in SQL Azure we got the error.
Adam put his SP in GitHub https://github.com/amachanic/sp_whoisactive , and I found out this the version was upgraded to v11.33. And now it runs on SQL Azure.
And finally I can see everything in our PAAS DB's.
Thank you Adam.

2019-05-30

Cost Management in Azure

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




יש להקליק ולהגיע למסך הזה.




במסך זה יהיו רשימת ה Subscriptions ונגיע לרצוי לנו.




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




לאחר מכן אפשר לשחק בסוגי החיתוכים למשל רוצים חיתוך יומי ולא מצטבר:



לאחר מכן נגיע למסך לחיתוך לפי סוג או לפי ה meter name,

יש אפשרויות רבות


אבל זה הדוח שאני הכי אוהב מראה ברמת ריסורס כמה אני חייב ומה העלות המדוייקת


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












 

2019-05-06

Rising prices of Azure

שלום רב
פוסט זה אני כותב לאחר מספר פעמים שהתופעה הזו התרחשה, מדובר על עליית מחרים בשירותים של azure.
אני רוצה להתמקד בשני נושאים:
  1. New Alert system
  2. Azure SQL DB PRS tiers
הנקודה הראשונה:
  • כחלק מהשירותים שניתנו למשתמשי השירותים המנוהלים - קיבלנו מערכת התרעות סבירה ונוחה, ניתן היה להגדיר התרעות כאשר ה DB עובד קשה מידי DTU גבוה או הגענו ל 90% מהסטורג' וכדומה.
  • לא מזמן קפצה הודעה שההתרעות הללו ייפסקו ב 30 ביוני ראו תמונה:


  • ואז הולכים להגדיר התרעה חדשה:

  • מסך יותר משוכלל שנותן התרעות לפי שלבים ומצבים, פה הגדרתי אם DTU מעל 85% לזמן מסויים:
  • ואז מגדירים את ההתרעה - וראה זה פלא יש עלות!!! סנט להתרעה:

  • כאשר ממש לא ברור אם זה פר התרעה או פר הגדרה, נכון סכום נמוך - אבל במאות שירותים ובמאות ריסורסים זה מגיע למאות דולרים ובמצטבר עוד שורה שמנה בחשבונית.
הנקודה השנייה:
  • היה שירות ב DB שנקרא PRS שהוא נתן יכולות של Premium tier עם SLA יותר נמוך.
  • לא שמנו עליו production אבל הוא היה מעולה לבדוק , Load test בעלות הגונה.
  • והנה גם את זה מורידים בסוף יוני - אותה הודעה מלמעלה, וממש אין שום פתרון הגיוני. זה יגרום לעליית עלויות ביותר מפי 4.
ההתנהגות הזו מצביעה על שינוי שקורה במיקרוסופט לאחרונה, פחות מקשיבים ללקוחות, וממוקדים רק מטרה אחת, לא חשוב מה הלקוח חושב, חשוב מהי השורה התחתונה...
אלו תזכורות לימים אחרים במיקרוסופט.

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

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




 

2019-03-04

Azure SQL DB tiers comparison

Hi All
In the last few month Brent Ozar gae us 2 masterpiece blogs related to Azure SQL DB:
 
 
In this blog Brent compared the abilities of Azure SQL DBs to load Data - he compared all combinations of vCors tiers. (When I asked him about comparing the Standard\Premium tiers, he told me to do it.... :-) )
 
 
In this blog Brent showed us that in the vCors world the storage throughput has limit and there is not need to pay so much money when you need to upload lots of data.
 
So I took have taken up his challenge and done a comparison in Azure SQL DB in Standard\Premium tiers.
I have created a new DB with 1 Table.
I have generated 7 GB of DATA, and created the file in my local on premise drive (Yes, do not kill me, I did not had the time to put it on azure), and uploaded it via BCP command.
 
bcp "TableName" in "T:\MyTable.bcp"  -S"myservername.database.windows.net" -UUserName@myservername -P"Password" -n -d"DBName"
 
After each test I have truncate the table and changed the tier.
 
Here are the main results:
  
 
Rows/second
Time(MS)
Cost per month
S2
             4,071
           18,184,812
 $                    73.0
S4
             4,083
           18,129,531
 $                  294.0
S6
             9,007
              8,219,047
 $                  588.0
S9
           18,733
              3,952,062
 $              2,354.0
S12
           15,054
              4,917,703
 $              4,415.0
P1
             3,670
           20,168,375
 $                  456.0
P4
           22,851
              3,239,875
 $              1,825.0
P11
           22,188
              3,336,688
 $              6,868.0
P15
           24,487
              3,023,344
 $            15,698.0
 
It is clearest to see if we view the results in a chart of cost vs Rows\Second.
 
 
What does the Charts shows us?
Most cost effective is S9 tier, but as we would expect P15 is the fastest  
 
Below are various graphs of resource utilization for each tier.
 
S2 tier Log IO and Data IO took time
 
 
S4 Had only LOG IO issues
 
S6 - the same chart.
 
S12 Log IO is 100% and I have also added the DTU.
P4 looks the Same


 
 
P11 start to change Log IO was 100% only for a short time
 
 
P15 \ P11 \ P4 on the same Chart
 
 
 
In conclusion - Just as Brent found, Log IO is the bottleneck, the storage write operations. 
Log IO is the bottleneck but you get what you pay for, the more you pay the more I/O. Therefore the effects of the Log IO bottleneck are reduced the more resources/money you throw at the problem.
 
Next time I will test reads operations and CPU's
 
Have a good day.

2019-01-03

Static Data Masking in SQL Server

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

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

אבל אז הבנו שמידע הלקוחות נחשף - אז בנינו סקריפט שמעדכן את המידע בטבלאות הרלוונטיות. ומאז הכל דבש (כמובן לבנות סקריפט שרץ ומעדכן מידע על טבלאות ענק זה לא רק עדכון פשוט אלא חייבים לעשותו בלופ ובטרנזקציות קטנות.... וצריך הבנה בזה)

באו החכמים ממיקרוסופט (באמת ישבו על זה צוותים ובנו GUI מדהים) ופיתחו את הפיצ'ר הידוע בשם :
Static Data Masking.

ראשית מהיכן מריצים?
מ SSMS 18 ומעלה. אין פה תלות לגירסת בסיס הנתונים.

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

הפיצ'ר במהותו נכון אבל באמת לא נראה לי שמישהו שיש לו בסיס נתונים בגודל מעל כמה GB יוכל להשתמש בו - העדכון כמובן עף על טבלאות גדולות.
למשל אם מעדכנים כמה שדות באותה טבלה הוא מריץ לכל עמודה עדכון בפני עצמו, כמובן שזה לא יעיל....

בגלל שזה תוכנן כך - הנתונים הרגישים זמינים בקובץ הגיבוי וזה כשלעצמו לא יעבור לדעתי, בקרת רגולציה...

אז בקיצור החברים ממיקרוסופט השקיעו במסכים באמת מורכבים מפורטים וטובים...
אבל באמת? להשקיע בזה זמן? לא ברור לי מי קובע שם סדרי עדיפויות.
ותודה ליצחק וואנון ה DBA הבלתי נלאה...

הלינק לדוקומנטציה: