Browse by Tags
All Tags »
SQL (
RSS)
מה זה SMO? SMO, ר”ת של SQL Server Management Object, זה אוסך של אובייקטים החושפים פונקציונאליות של ניהול שרת SQL Server על רכיביו השונים ובכל הרמות (ניהול שרת, ניהול דטאבייסים, ניהול הרכיבים בדטאבייס מסויים וכו’). מדובר, למעשה, במקבילה דוט.נט-ית לרכיב שידוע בשם SQL-DMO (עוד ד”ת - SQL Distributed Management Objects). האסמבליס (קבצי הDLL) של SMO נמצאים בנתיב C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies\Microsoft.SqlServer.Smo.dll (מדובר בקבצים של SQL SERVER 2008, כאשר c:\Program Files זה...
אפשרות חמודה שקיימת ב SQL Manegment Studio 2008 היא להגדיר לאופציית ה” GEnerate Scripts” של הדטאבייס גם לייצא את הנתונים (כלומר, לייצר משפטי INSERT לטבלאות). האפשרות הזאת לא קיימת בגרסא 2005 (יש Generate Scripts – אין Data – כלומר שלמדתי על בשרי כשלא הבנתי לאן נעלמה האפשרות), אבל אין שום מגבלה על התקנה ושימוש ב Management Studio 2008 גם מול instance של SQL Server 2005. השימוש העיקרי של האפשרות הזאת, הוא העברת מידע משרתי הפיתוח לפרודקשן כאשר רוצים להעביר טבלאות חדשות מסויימות או אובייקטים חדשים מסויימים...
כאשר עובדים עם profiler ניתן לייצא את הנתונים (וכך בד”כ עושים) לקובץ trc. במידה ורוצים לעבוד מול קבצי trc בקלות (בלי צורך בכל ה performance tools), ניתן לעבוד מולם באמצעות שאילתות TSQLפשוטות, בדיוק כמו טבלה. לצורך העניין, ניתן להשתמש ב fn_trace_gettable שמקבלת את שם הקובץ ומספר המסמן את כמות הקבצים שצריך לקרוא. לצורך הדוגמא, השאילתה הבאה תחזיר לנו את השאילתה עצמה, שם האפליקציה שהריצה את השאילתה, זמן הפעולה שלה והCPU שצרכה ותמיין לפי הזמן שלקח להריץ כל שאילתה: SELECT textdata,applicationname,duration...
בעקבות שאלה שנשאלה בפורום תכנות .net, חשבתי להביא סקירה קצרה על ה types של SQL שכולנו משתמשים בהם יום יום, מה ההבדלים שלהם ומהי צורת ההתנהגות שלהם. char ו-varchar, אלה שני ה types הבסיסיים. char, יכיל תמיד את האורך שלו, משמע, שאם אני אשתמש ב char ואגדיר לו לקבל 10 תווים, ואכניס shahar, מה שיאוכסן בפועל זה shahar ובנוסף לכך 4 תווים ריקים. כשמשתמשים ב type הזה, נהוג להשתמש במתודה String.Trim לפני העבודה עם הערכים, כדי לקבל את הערך שהוכנס נטו, ולסלק רווחים מיותרים מהצד. varchar, למעשה, מכיל את הערך...
היום, כחלק מהעבודה, כתבתי שאילתה SELECT ממש בסיסית. כחלק מהתנאי WHERE בשאילתה, עשיתי בדיקה אם שדה מסוג ntext שווה לאיזשהו משתנה. כשהרצתי את זה חטפתי SQL Exception שיידע אותי שאי אפשר להשוות ולמיין לפי שדות של image (הגיוני) ושל text ו ntext. לגבי המיון, זה איכשהו הגיוני עוד. אבל יש למישהו מושג לגגבי השוואה? השוואה, נניח, ל nvarchar אפשרית. היות שמלכתחילה זה לא היה אמור להיות ntext, אז הסתדרתי. אבל, אם למישהו יש מושג בעניין, אשמח לדעת. שחר.