2017-08-31

New performance levels and Pricing in SQL Azure SQL DB

שלום רב
לכבוד סיום החופש מיקרוסופט מפנקים אותנו ברמות ביצועים חדשות ב SQL Azure ב Standard tier.
נוספו S4,S6,S7,S9,S12.
כאשר מעבר לרמות הללו הוסיפו נידבח על עולם התימחור.
כאשר עד היום הינו משלמים על הכול כלומר כוח חישובי וכן על Storage, עכשיו הוסיפו אפשרות להוסיף עד 1 TB, כאשר כל GB מעל 250 ב Standard ומעל 500 ב Premium וב PremiumRS נשלם עליו.
21 $ לחודש ב Standard, וב Premium & PremiumRS נשלם על כל 250 GB 43 $.
הדבר כבר ניתמך בפורטל.

לא ארחיב כאן מתי עדיף להשתמש ב Standard or Premium על זה אנסה בקרוב לתת הסבר מפורט.

להלן לינק ההכרזה:
להלן מספר תמונות מהפורטל ומהמחשבון:
 
ככה החלוקה ניראית מהמחשבון

 
ככה זה נראה בפורטל ב שתי קומבנציות


 

2017-06-12

FailOver Groups in SQL Azure DB

שלום רב
והיום על תחום DR.
יש כבר זמן רב את היכולת ליצור Geo-Repliation.
בקצרה זוהי יכולת ליצור בזריזות עותק של בסיס הנתונים באיזור אחר, הוא יושב בשרת אחר ואפשר לעשות אליו Fail over אולם כל הקשור לשמות, המערכת הזו סטטית. כלומר שמות לא עוברים ואתה צריך לקנפג בקוננקשין סטרינג שאת הכתיבות אתה מבצע לבסיס נתונים אחד וכשמתבצע fail over אתה עובר לכתיבה לקוננקשין סטרינג אחר.
כל זה נכון אם אתה ביצעת את ה fail over. אולם אם מיקרוסופט ביצעה את ה fail over השמות כן מתחלפים לטענתה.

לאחרונה היתווספה היכולת לבצע fail over ואתה כלקוח לא תצטרך לשנות קוננקשין סטרינג.
הרעיון הוא פשוט
  • יוצרים Fail over Group.
  • קובעים לה שם
  • מחברים לקבוצה הזו כמה בסיסי נתונים שרוצים.
  • מקנפגים איך יתבצע ה Fail Over וכמה זמן אחרי נפילה יתבצע אם זה אוטמטי.
מיקום מסך יצירת Fail Over Groups:



מסך קונפיגורציה, פה מוסיפים בסיסי נתונים לקבוצה, מוחקים, עושים fail over וכדומה, כמובן הכל אפשרי גם ב PS:



זהו עכשיו יש קבוצה עם 2  URL להתחברות לדוגמא:

fonrtest1.database.windows.net - to the Primary

עכשיו ביצעתי Fail over ומה שקרה ששתי הכתובות מפנות למה שהיה קודם secondary.
כלומר שינוי הכתובת עובד רק על הראשון, זה לא מושלם אבל זו התחלה!!


ככה נראה מסך של Fail over groups מול מסך של geo replication  רגיל:





הנה 2 לינקים בנושא:


המפתחים שלי התחילו לאהוב את זה.
 

2017-05-21

SQL Azure DB and include live query statistics

אני אוהב לאחד חידושים.
כאשר יצא SQLServer 2014
יצא גם DMV חדש
dm_exec_query_profiles
זה נתן לנו יכולת לעקוב אחרי התקדמות פעילויות כמו יצירת אינדקס או
Rebuild.
להלן לינק נחמד מאד שמסביר את זה
 
 
יש מספר סקריפטים שמראים כיצד להשתמש ולראות את התקדמות הבניה של האינדקס למשל:
 
 
SELECT
node_id,
physical_operator_name,
SUM(row_count) row_count,
SUM(estimate_row_count) AS estimate_row_count,
CAST(SUM(row_count)*100 AS float)/SUM(estimate_row_count) as estimate_percent_complete
FROM sys.dm_exec_query_profiles
WHERE session_id=@SPID 
GROUP BY node_id,physical_operator_name
ORDER BY node_id desc;
 
ב SQL Azure אני משתמש בו לעיתים תכופות - אולם פה אני מנצל את היכולת של ה PAAS, אני מעלה ל
Tielr גבוה מאד מריץ את מה שצריך להריץ - יודע בדיוק מתי זה ייגמר באמצעות שאילתא זו
ואז מוריד את ה Tier חזרה.
 
כמו שאמרתי אני משלב 2 חידושים - ה DMV והיכולת להעלות Tier ולהריץ דברים מאד מהר.
 
יש לציין שכרגע הסקריפט ירוץ או כאשר מדליקים ברמת הסשין דגל כלשהוא או שאני לוחץ על
"include live query statistics"
 
 

 
 
 
זהו לבנתיים
תנצלו את החידוש הזה
יום נעים

2017-03-09

New Service tier in SQL Azure called "Premium RS"

שלום חברים
2 הכרזות חדשות היו אתמול בנוגע ל SQL Azure DB, האמת שהתרגשתי משתי ההכרזות, יש בהן חידוש ממשי - שגם מעלה את האפשרויות שלנו בצורה ממשית לעבוד עם SQL בענן בתצורת ה PAAS האהובה עליי.
צוות הפיתוח במיקרוסופט קבלו שאפו..

הלינק להכרזה:
https://azure.microsoft.com/en-us/blog/sql-database-4tb-premium-and-premium-rs-preview/
  1. מוסיפים שכבת ביצועים חדשה Premium RS - יש פה חידוש משמעותי בכך שהם אומרים ניתן לכם מכונה עם ביצועים טובים מאד - נוריד מחיר וה SLA יהיה יותר נמוך כלומר הם ירפלקו בפחות מכונות והעליה לאחר בעיה יכולה לקחת כמה דקות... כמובן גם יש Column store  וגם יש InMemory.....אתם הבנתם את זה? סוף סוף מכונות חזקות - זולות ושהן לא פרודקשין ויש לי כאלו למכביר.....
  2. אפשרות של הרחבה עד ל 4TB של בסיס נתונים - כאן יש עקיצה - כי מדובר רק ברמות היקרות מאד - אולם זה מראה על הכיוון שחיובי של מתן אפשרות של בסיסי נתונים מעל 250-500 GB.

מצורפים לינקים להגדרות של Tiers החדשים:

https://docs.microsoft.com/en-us/azure/sql-database/sql-database-service-tiers

המחירים הם טובים מאד:



שימו לב שזה יותר טוב מהרבה הגבוהה של Standard וזה על דיסקים מהירים...
הידד

עוד דוגמא להבדלים:

 

2017-02-07

Operations Management Suite (OMS) and SQL Azure

שלום לכולם
והפעם "מוניטורינג חלק 1".
למיקרוסופט יש מבחר כלים שמציעים מוניטורינג, עליהם לא אדבר סך הכל הבלוג שלי מיועד לתמצת את מה שצריך לדעת על SQL Azure.
אז היום אציג את ה OMS והקשר שלו לנו ה  DBA's.

בקצרה על כלי זה:


Microsoft Operations Management Suite (OMS) is Microsoft's cloud-based IT management solution that helps you manage and protect your on-premises and cloud infrastructure. Since OMS is implemented as a cloud-based service, you can have it up and running quickly with minimal investment in infrastructure services. New features are delivered automatically, saving you ongoing maintenance and upgrade costs.
In addition to providing valuable services on its own, OMS can integrate with System Center components such as System Center Operations Manager to extend your existing management investments into the cloud. System Center and OMS can work together to provide a full hybrid management experience.
 
 
ניתן לקרוא בלינקים הללו.
זהו כלי לניהול משאבים שהחל דרכו ככלי של Advisor, ומאחר וממילא אסף נתונים על המכונות שדגם וניטר - החליטו החכמים לאמץ אותו גם בתור כלי ניטור וניהול.
עד לפני זמן מה הוא ניהל רק מכונות וירטואליות וככזה ניסיתי אותו על מכונת ה SQL on Azure VM שלנו.
התוצאות היו יפות אולם לא שימושיות, מדד CPU - התריע על גיבויים, על שימוש ביוזרים בלי ססמאות וכדומה, כל מה ש DBA בסיסי עושה. ייתכן שהוא טוב לחברה שאין בה DBA's.
ומאז התחילו להוסיף עוד ועוד יעדי ניטור.
למשל Azure Activity Log, שזה לוג של כל הפעילויות בפורטל. ועל זה אפרט ב"מוניטורינג חלק 2".
 

ועכשיו הוסיפו יעד ניטור נוסף - SQL Azure DB.
כלומר הענן נותן לך שירות ניטור על בסיסי הנתונים שלך, שירות ניטור בסיסי אבל יעיל, הרעיון הכללי הוא
  • להגדיר workspace.
  • להגדיר אילו SQL נכללים בניטור.
  • לראות את ה DATA שנאסף.
  • להגדיר DashBards.
  • להגדיר Alerts.
ועכשיו נציג כיצד זה עובד, יש פה המון אפשרויות וכל אחד שימצא לעצמו את מסלול הפעולה.
כיצד מפעילים אותו כרגע בשלב ה preview (מין הסתם בהמשך הכל יהיה עם קליקים בפורטל)?



 לאחר שלוחצים על האייקון הכחול אדום Solutions:





בוחרים את ה Azure SQL, ולאחר מכן נפתח ה Solution, ככה הוא נראה בלחיצה על OverView, פה יש לי Solution שמנטר 7 בסיסי נתונים:




השלב הבא הוא ללחוץ על OMS Workspace:



פה יש 4 כפתורים:
  1. מחירון עם 3 אפשרויות, חינם,  20 $ לחודש ו 30 $ לחודש.
  2. OverView - כמה בסיסי נתונים יש לנו במיפוי.
  3. Log Search - זה נותן אפשרות לחיפוש לפי הגדרה ולפי שפת חיפוש מאד ברורה.
  4. OMS Portal - פה יוצאים מהפורטל של Azure ונכנסים לפורטל ניהול אחד של הלוגים שם מגדירים חיפושים מועדפים, התרעות וכדומה
OverView:


Log Search:




הנה דוגמא שבודקת CPU בבסיסי הנתונים שלי:

Type=AzureMetrics MetricName=cpu_percent  | measure AVG(Average) as AVGCPU by Resource  interval 10MINUTE


בעתיד אולי ארחיב על מנועי חיפוש וענן אבל כרגע זה מנוע חיפוש מעולה ומהירץ

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

המדדים שנדגמים הם:
cpu_percent
physical_data_read_percent
log_write_percent
dtu_consumption_percent
storage
connection_successful
connection_failed
blocked_by_firewall
deadlock
storage_percent
xtp_storage_percent
workers_percent
sessions_percent
dtu_limit
dtu_used

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

OMS Portal - פה ניתן להגדיר Dasboards עם גרפים רבים, התרעות חיפושים מועדפים, ככה הוא נראה:



על הפורטל החדש והנחמד הזה ארחיב בבלוג אחר....


לסיום וכמעט הכי חשוב, כדי שהמנוע יאסוף נתונים מבסיס הנתונים הרצוי עליכם להריץ סקריפט PS נחמש שנותן לבחור איזה בסיסי נתונים ועושה Enable לאיסוף הנתונים.

הפרטים פה:


Enable Azure resource metrics logging using PowerShell

אחרי שמריצים את הסקריפט  הוא מציג:
 
 
 
 
 
 
 
 
Metrics gathering for new resource zzzzz/master of type [Microsoft.Sql/servers/databases] was set to enabled
Metrics gathering for new resource zzzzz/z1db of type [Microsoft.Sql/servers/databases] was set to enabled
Metrics gathering for new resource zzzzz/z2db of type [Microsoft.Sql/servers/databases] was set to enabled

Metrics gathering for new resource zzzzzz/z2db of type [Microsoft.Sql/servers/databases] was set to enabled

Metrics gathering for new resource zzzzzz/z3db of type [Microsoft.Sql/servers/databases] was set to enabled

Metrics gathering for new resource zzzzzz/z4db of type [Microsoft.Sql/servers/databases] was set to enabled


 
 
 
 

 

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

2017-01-30

Azure Automation vs Azure Function AS SQL Server Agent

שלום לכולם
ב 2014-9-21 פירסמתי פוסט על
Azure Automation - מנגנון תיזמון התהליכים של Azure.
מעבר להיותו טיפה מסורבל הוא יכול להריץ בעיקר  PS.
לאי אפשר לתזמן דברים בתדירות גבוהה ולכןן לא העברתי אליו תהליכים רבים.
לאחרונה נוסף חידוש בAzure, הנקרא Azure Function שזהו הכלי להריץ קטעי קוד קטנים מבלי להרים שרת ServerLess.
רבותי הענן מריץ לכם סוגי קוד שונים:
 Write functions using C#, F#, Node.js, Python, PHP, batch, bash, or any executable
 ניתן לקרוא על זה פה:
Azure Functions Overview

טוב חשבתי לעצמי - יללה Agent לא רק PS אלא קצת נשפשף את ה C# שלנו.
ואז ראיתי 2 מאמרים שבעצם הוכיחו לי שהכיוון נכון - או יותר נכון לומר 2 מאמארים שגנבו לי את המחשבות:

Azure Functions to Schedule SQL Azure operations - מפה לא יצא לי כלום.
Azure Functions Tutorial – SQL Database - אחלה מאמר ומפה התקדמנו.

ביקשתי מגרי רשף שיעשה כמה בדיקות ויריץ את - ואכן הדבר עובד להפליא - נשאר רק לנהל מנגנון התרעות על כשלונות והכל יהיה מעולה.

ראו מאמר של גרי בנושא:
תזמון משימות ב-SQL Azure בעזרת Azure Function


והנה המאמר המקורי שלי ב 2014 לגבי ה Automation - שאגב דברים רבים השתנו ובעתיד אחלוק עימכם את דעתי עליו ואת יכולתיו.

 What can we do with "Azure Automation"

נסו ותהנו Serverless - זה הדבר החדש....
יום נעים
פיני

 

2017-01-18

What is Azure Advisor?

ערב טוב
והיום על ינשופים.


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

להלן 2 לינקים מתוך האתר של Azure:

ובכן זהו כלי נוח הנותן עצות למנהל החשבון של הענן ב 4 תחומים:

High Availability – to ensure and improve the continuity of your business-critical applications. For more information, see Advisor High Availability recommendations.
 
Security – to detect threats and vulnerabilities that could lead to potential security breaches. For more information, see Advisor Security recommendations.
 
Performance – to enhance the speed of your applications. For more information, see Advisor Performance recommendations.
 
Cost – to optimize and reduce your overall Azure spend. For more information, see Advisor Cost recommendations.


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

מתוך Wikipedia על ינשופים:

"הינשופים אינם בונים קנים, אלא גרים במקומות נטושים וחשוכים" - קשה להגיע בפורטל אליו הוא נמצא תחת Monitoring +Management


"גודל הינשופים הוא כגודל תרנגולת צעירה, אך בגלל נוצותיהם הם נראים גדולים יותר מגודלם הממשי; " - מגיעים אליו ולוחצים על כפתור Get Recommendations, ואז המנוע שלהם עובר על 4 התחומים שהזכרנו. ומציג את ההמלצות לפי הנושאים השונים, סך הכל אין פה דברים חדשים אלא ריכוז של הדברים הקיימים. למשל אם אני אקבך המלצה על שיפור של performance - זו אותה ההמלצה שיש כבר בעמוד של ה sql עצמו למשל אינדקס שצריך להוסיף.


וזו ההמלצה על האינדקס עצמו:



"הינשוף פעיל רק בלילה" - האמת שלא היה לי פה כלום אבל בפורטל שלי האייקון נראה ממש כמו שהוא פעיל בלילה.



"לאחר סיום עיכול הטרף, הינשוף מקיא את החלקים (צנפה) שאינם יכולים להתעכל בגופו" - המלצות של Security נובעות בעיקר מענייני IT ולא תמיד לרוונטיות ל VM שעליו הם ממליצות - אבל מצד שני תמיד טוב לדעת שאתה נוהג בניגוד ל  Best Practice שהם ממליצים. בעיקרון המערכת לא מסוגלת להוריד את ההמלצות במידה ובחרת לא לקבל אותן - ובפעם הבאה הן יצוצו שוב.

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



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


זהו להיום נסו ותהנו.
פיני



 

2016-12-14

Compatibility Level in SQL Azure

שלום רב
הפוסט היום מיועד ל  DBA's. מן הסתם אחרים פחות יבינו אולם פה אני אסביר לכם גם למה אני כל כך אוהב את הענן.
ובמיוחד את SQL Azure.

פשוט מדהים וכיף - אז ככה מי מה DBA's שקוראים פוסט זה לא יודע מהו Compatibility Level?
2 הצביעו - יפה.
אז הנה הסבר קצר:
לבסיס נתונים יש version שזה מספר הגירסה של בסיס הנתונים, אולם בכדי שתהיה תמיכה לאחרו הוסיפו החכמים את המימד של Compatibility Level.

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

זו הטבלה המדוייקת שנלקחה מהלינק הזה https://msdn.microsoft.com/library/bb510680(SQL.130).aspx :

 
 
אם קוראים בכתובים אפשר לראות למשל ש:
Compatibility-level setting of 130 - The Insert in an Insert-select statement is multi-threaded or can have a parallel plan.
Compatibility-level setting of 120 or lower - The Insert in an Insert-select statement is single-threaded. 
 
כלומר שגם אם תבצע Insert Select  ב SQL Server 2016 וה Compatibility Level  הוא  120 - זה יתבצע לפי 120 ולא לפי גירסה חדשה.
 
מי שרוצה לקרוא דוגמא מפורטת יותר על ההבדל יכול לקרוא במאמר של Thomas Larock https://thomaslarock.com/2016/01/how-to-change-the-compatibility-level-of-an-azure-sql-database/

או במאמר של מיקרוסופט פה:
 
אחלה כבר כולם כתבו על זה אז מה אני מתרגש?
ובכן כרגע כבר אפשר להריץ את זה ב SQL Azure:
 
ALTER DATABASE [DBname]   SET COMPATIBILITY_LEVEL = 140
GO
 
כאשר גם מיקרוסופט עצמה טרם מסבירה מה השינויים ואנו בוחנים ובודקים.
זה קשור ל execution plan  ועוד מלא מילים יפים כאלו של DBA's שרוצים להראות שהם מבינים עניין.
 
אז אני כבר שיניתי באחד מבסיסי הנתונים שלנו  ל  
COMPATIBILITY_LEVEL = 140
ואז רץ לבדוק את ה
Batch Mode Adaptive Memory Grant....
מת על הענן.
חברים יום נעים.
פיני



2016-11-09

Long Term Retention Backup in Azure SQL DB

ערב טוב
לילה, בחירות, זמן - סוף סוף יש זמן לכתוב פוסט.
והיום על פיצ'ר החדש הקרוי:
 Long-Term Backup Retention
אפשר לבצע פעולות אלו גם בפורטל וגם ב PS
אני אציג בפוסט זה את הדרך לבצע גיבויים אלו דרך הפורטל.
מצורפים 2 לינקים, ראשון ההכרזה עצמה, הלינק השני מכיל תיאור כיצד לבצע ב PS.
 
Announcement:
 
PS:
 
אז קדימה בואו נצלול לעולם הגיבויים ארוכי הטווח.
המפתח הוא להבין מה היה עד היום ומה מציעים עכשיו.
עד היום היה ניתן לשחזר אחורה עד 35 ימים (לפי ה tier המתאים) לכל נקודה בזמן (PIT).
עכשיו מציעים ללא קשר ל tier שמירה של עד 10 שנים של עותק של בסיס הנתונים.
במענה לשאלה שלי ענו לי ככה:
 
The SQL Long term backup retention only saves the weekly backup to Recovery Service Vault.
 
כלומר הם שומרים רק Full backups. ואותם מעבירים ל Recovery Service Vault.
שזהו המחסן או ה Storage שנשמרים בו הקבצים.
 
Backup: 

התהליך הוא פשוט יחסית - ברמת השרת מקנפגים מחסן זכרון לאותו איזור ולאותו סבסקרפשין, ואז מחליטים על מדיניות שמירה, ואז שומרים בסיס נתונים לאותה מחסנית לפי המדניות המתאימה.
 
Restore:
התהליך גם כן פשוט - ניגשית להיכן שמשחזרים בסיס נתונים, לוחצים על טווח ארוך (בדיוק כמו החניות בשדה תעופה), בוחרים את המחסנית הרצויה ומשחזרים ...
 
זהו.
שאלות שנשאלות :
אם מוחקים בסיסי נתונים או שרת - איך משיגים שיחזור? ובכן באמצעות פקודות PS זה אפשרי .
אם שומרים את הגיבוי המלא אז מה יהיה אם רוצים לשחזר לאמצע שבוע? אי אפשר שיזחור רק לזמן גיבוי שהוא גיבוי full.
 
נעבור על התהליך בתמונות:
 
  • ברמת השרת אנו לוחצים על השורה המסומנת
 
 
 
 
 
 
  •  מאשרים תנאים, בחלון שנפתח בוחרים את כל מה שצריך. אם אין vault, צריך לייצר כזה אחד.
 
 
  • הנה ההודעה - כאשר לא קיים Vault - Recovery Service.
 
 
  • נייצר Recovery Service - באותו הסבסקרפשין ובאותו איזור של בסיס הנתונים שלנו - ומצורפת התמונה.
 

  •  לאחר שייצרנו נראה שקיים כזה שירות - הוא יופיע לנו אחרי כן אוטמטית בחלון של LTR.
 
 
 
  • לאחר שייצרנו ושייכנו אליו בסיס נתונים ויצרנו Policy מתאים שאומר כמה שנים לשמור את הקובץ, אנו לוחצים save - ורואים לאחר כמה דקות שמתעדכנת העמודה עם פרטי ה Policy.
 
 

  • שימו לב שרואים ב vault את הגדלים של הקבצים שנשמרו - אולם עדיין לא מצליחים להגיע לזה ממש מתוך מוצר זה.
\
 
  • לאחר מכן מגיע שלב ה Restore. שימו לב הוא יופיע רק לאחר שיתבצע גיבוי מלא לבסיס הנתונים Full. ניגשים לבסיס הנתונים ולוחצים על restore.
 
  • לוחצים על Long Term
 
 
  • בוחרים את המחסנית המתאימה
 
 
  • ומאשרים - לאחר זמן מה מסתיים השיחזור ורואים את בסיס הנתונים במקום. יש גם הודעה בלוגים:
 
 
  • גם התרעת מייל על יטצירת בסיס נתונים חדש קיבלתי (מבטיח לכם להסביר איך עושים את זה בהזדמנות...) 
 
 
זהו - ניתן לשחזר ולשמור שנים רבות - כמו שציינתי בסיסי נתונים שנמחקו טרם בדקתי - הם טוענים שזה עובד ב PS.
 
שיהיה לכם יום מופלא
 
פיני