sql explore 2012 - aviad deri: spatial
TRANSCRIPT
Spatialאו מי
צריך את זה בכלל
- ב משתמש ?Spatialמי
כולנו!
תוכן
ועליי • רפאל על קצת•? גיאוגרפית מידע מערכת זה מה
גיאוגרפית – מידע מערכת אתגרימידע • סוגי
גיאומטרי–גיאוגרפי–
אינדקסים••Tessellation•Spatial Aggregations•- ב ושיפורים SQL 2012חידושים
רפאל על קצת
מתקדמות, • לחימה מערכות מגוון ומספקת מייצרת מפתחת: יכולות הביטחון למערכת תורמות אשר
בים–באוויר–ביבשה–
בשנת • מ – 2010רווחים ₪ 1.8למעלה מיליארד•- מ עובדים 5000למעלה
עליי קצת
חיפה • באוניברסיטת מידע למערכות החוג בוגר•DBA- כ :6.5תשתיתי שנים
–MS SQL 2000-2012
–Oracle 9i-11g
–SQL Anywhere 10
–Sybase
אחריות תחומי
•- מ למעלה של שוטפת במערכות 100תחזוקה שרתיםמרכזיות.
•: וכלים, שירותים מגוון של והטמעה הדרכה פיתוח–Reporting Services–Integration Services–Spatial–PowerShell–Mirroring, Replication... ועוד
שאילתות • וכיוונון ביצועים שיפור•" ל ברפא פרוייקטים וליווי ייעוץנתונים • בבסיסי מידע אבטחת
מידע מערכת בעצם זה מה אזגיאוגרפית?
גיאוגרפיות )• מידע בהיבטים( GISמערכות המטפלות מידע מערכות הן " , . העסק כתובת את ברשומותיה תשמור ג ממ למשל המידע של המרחביים
. הזה המידע ניצול את שיאפשר באופן אותו התוחם המרחבי והפוליגוןשונות" • ישוייות בין המיקומים ליחס בנוגעות שאלות על לענות יודעת ג ממ
כגון:כתובת – בין המרחק ?Yלכתובת Xמההכתובת – בשכונה Xהאם (?Yנמצאת פוליגון )כביש – ?Yוכביש Xהאם נחתכים – / ) משכונה ) אל יוצאים או הנכנסים קווים הכבישים כל את לי הבא
) פוליגון ) מסויימת• , . " מספר, נכס שווי למשל ורגילים נוספים נתונים גם שומרת ג ממ בנוסף
.' וכו דיירים
המידע מערכת אתגריהגאוגרפית
אלגוריתמית • מורכבותביעילות – לענות מנת על מתוחכמים באלגוריתמים צורך יש
גיאוגרפיות שאילתות על
הנתונים • בסיסי נפח– . הרשומות מספר רב בהיקף מידע בשמירת צורך יש
)' , , מגיע) יורק ניו העיר של וכו חשמל קווי צינורות כבישיםרשומות למיליוני
תצוגה • בעיות– ,) המידע ) אמינות נכונה בצורה הנתונים את להציג איך
) ( ) גיאודיזה ) עיוותים ללא לעין ונעימה חדות מפורטת
הנשמרים המרחבי המידע סוגיDBב-
:2נשמרים SQLב-• מרחבי מידע סוגיגיאומטרי•
ביסודי – ההנדסה משיעורי לכולנו מוכרצירים – , x,y,zמערכת , גובה רוחב אורך לציון– " ומצולעים קווים י ע מוגדרתגיאוגרפי•
–' , וכו באינטרנט מפות ניווט מאפליקציות בעיקר מוכר–- ב ) משתמשים לרוב גיאודזית ייחוס (WGS84מערכתמסויימת – ברזולוציה שטח תא מייצגת משבצת כל
גיאומטרי מידע
: כגון שונים גיאומטריים אובייקטים מייצג(Pointנקודה )–
• ) יותר ) מורכבים אובקייטים ליצירת הביניין אבן ביותר הבסיסית כיחידה משמשתמדוייק • מיקום מייצגת• " צירים במערכת ציון נקודו י ע גם x,yמוגדרת להוסיף ניתן -zכאשר ו גובה Mלציון
: . למשל מידה יחידת POINT(10 10) / POINT(10 10 10 1)לציון•' , , וכו היקף שטח אורך כגון מאפיינים לה אין
(Linestringקו )–נקודות • מספר בין נתיב LINESTRING(0 0, 10 10)מצייןעצמו • את חותך לא הוא כאשר פשוטה כצורה נחשב• ) סגורה ) צורה יוצר הוא כאשר מעגל כטבעת נחשב• ( , מוגדר כאשר אפילו שטח לו אין אבל אורך לו יש מימדית חד כצורה נחשב תמיד
כמעגלי(
(Polygonפוליגון )• , מימדית דו סגורה צורהואורך • שטח בעלת• " בתוכה " חורים להכיל יכולה
(Collectionאוסף )–המקובלות • התכנות שפות ברוב למערך מקביל• , פוליגונים או קווים נקודות של אוסף מכילנקרא • ביותר הגנרי GeomCollectionהאוסףנגזרים • MultiPoints,MultiPolygon,MultiLineStringממנו
גיאומטרי מידע עם עבודה
שונות • בפונקציות להשתמש יש גיאומטריים אובקייטים עם לעבוד מנת עלכגון:
•STGeomFromText – תקין גיאומטרי לאובייקט מחרוזת הפיכת
SET @g = Geometry::STGeomFromText('LINESTRING(0 0, 10 10, 21 2)',0)
•STEnvelope – נתונה לצורה מסביב מרובע פוליגון יצירת
•STConvexHull – נתונה צורה של המתאר קווי את המקיף פוליגון יצירת
•STDifference " צורה)( – י ע הנחתכת צורה של השונה השטח את מחזירה
אחרת
•STIntersection – )(בין בלבד החופף השטח את נחתכות 2מחזירה צורות
•STUnion – )(של החופף השטח את נחתכות 2מחזירה צורות
דוגמאות
גיאוגרפי מידע
: ייחוס במערכת גיאוגרפיים אובייקטים מייצג•- כ נשמרת -longitudeנקודה latitudeו • , ייחוס במערכת צורך יש עגול אינו הארץ שכדור מכיוון
) הקורדינאטות) מערכת את מקרבת אשר דאטוםפני ) " גובה את המייצג המשטח הגיאואיד אל שלנו . במערכות" הנפוץ הדאטום הארץ כדור סביב הים
GPS הינוWGS84 למשטח יחסית קרוב שהוא מכיוןהארץ כדור ברוב הגיאואיד
גיאוגרפי מידע
בדאטום שימוש על להקפיד חשוב!! שלנו המערכת עבור הנכון
•: חישוביות לטעויות גורם נכון לא בדאטום שימוש–- ה בין 60בשנות גשר נכונים 2נבנה הלא האיים
בהוואי– , פגעו האמריקאים המפציצים המפרץ במלחמת
של בסטייה מהמטרה 750בקביעות מטרים
Spatial indexes
•: הבאה הדוגמא על נסתכל– , בטבלה נשמרים באוניברסיטה ציונים במערכת
. הממוצע וציונו האישיים פרטיו סטודנט לכלשיש – , 20,000בהנחה רק לשלוף נרצה אם רשומות
ממוצע עם אלו , 90את זמן תיקח השליפה ומעלה) יחסית ) רב
– , שדה על אינדקס נגדיר השליפה שיפור לצורךהריצה יעילות את ונשפר הממוצע הציון
(O(n)O(logn).)
על • השוואות מבצעות כלליות ששאילתות בעודסדר ) יחס " פי כוללות><=( השאילתות ג בממ
. מרחביים אופרטוריםשאילתות" • על גם לענות בנוסף נרצה ג בממ
קרית " בשכונת המתגוררים הסטודנטים מי כגון"? בחיפה אליעזר
• - מעבר אינדקס ללא הבעיה את לפתור אפשרהיא האם לבדוק רשומה ולכל הטבלה כל על
לא או אליעזר קרית של הפוליגון בתוך
• " נשתמש ל הנ היעילות חוסר על להתגבר כדי . סוגי מספר קיימים גיאוגרפיים באינדקסים
יתרונות אחד ולכל גיאוגרפיים אינדקסיםוחסרונות.
מכונה • והפשוט הנפוץ Fixedהאינדקסquadtree index
בגודל • לריבועים העולם את מחלקים זו בשיטהצורה, ולכל הריבועים את ממספרים קבוע
. / נמצאת היא בו ים הריבוע את שומרים במרחב
•: שלבים בשני יבוצע החיפוש כעתגס – חיפוש
שכונת • את התוחמים הריבועים כל את נחשב תחילהאליעזר קריית
שלהן • האריח מספר אשר הרשומות כל את נשלוף . גדול חלק פסלנו כבר זה בשלב ברשימה נמצא
מהרשומות
עדין – חיפושהפוליגון • בתוך הן האם נבדוק שנותרו הרשומות עבור
" . מרחובות רשומות נסנן כך י ע השכונה את המגדירהמבוקשת בשכונה נכללות שלא סמוכים
-SQLב-• " ב שימוש י ע נשמרים -Bהאינדקסיםtrees.
• - האינדקס של מימדי הדו המידע שיטוח לצורך- ה עצי -Bלתוך - SQLה, ב four-levelמשתמש
grid hierarchyשמעליה • השכבה את מפרידה נוספת שכבה כל
נוסף בפירוט אותה ומציגה
האינדקס צפיפות
להגדיר • ניתן באינדקס שכבה צפיפות 3לכל רמות
•: הבא באופן מתבצעת האינדקס יצירת• CREATE SPATIAL INDEX SIndx_SpatialTable_geography_col3 ON
SpatialTable2(object) WITH ( GRIDS = ( LEVEL_3 = HIGH, LEVEL_2 = HIGH ) );
Number of cells Grid configuration Level
16 4x4 Low
64 8x8 Medium
256 16x16 High
Tessellation
• , את קורא האינדקס השטוחה הרשת בניית לאחר
ומבצע שורה אחר שורה הגיאוגרפית העמודה
. " משבצת" לאותה השייכים הנתונים של פסיפוס
• , " בכל" אחת שכבה השכבות ארבע בכל קורה פסיפוס ה
פעם.
לאינדקס • מוכנסים יש touched cellsבתהליך שבהם
. " " רגע באותו המאונדקס לאובייקט נוגעים ש אובייקטים
Tessellation Rules
• , לאינדקס המוכנס המידע את להגביל מנת עלב . tessellation rules משתמשים
•The covering ruleכתא – נחשב הוא לגמרי תא מכסה האובייקט אם
מכוסהבתהליך – נחשב לא אבל נספר מכוסה תא
" פסיפוס" הבכל – תקף הזה השכבות 4החוקהאינדקס – בגודל וחוסך התהליך את מפשט
•The cells-per-object ruleאובייקט כל עבור הנשמרת המידע בכמות שולט החוק
" , התאים מספר של הגבלה י ע הנמוכות בשכבות) הראשונה ) בשכבה למעט אובייקט כל עבור הנספרים
•The deepest-cell rule " י ע האובייקט את ביותר הטובה בצורה מאנדקס
ביותר התחתונה בשכבה המידע של .שמירהכמות בספירת נכללים לא העליונות בשכבות התאים
באינדקס נשמרים לא ולכן לאובייקט התאים
Spatial Aggregation
שונות • מידע שכבות של מאוחדת הצגת• SELECT Geography::UnionAggregate(geog) FROM Counties WHERE name = 'Washington';
• SELECT Geography::EnvelopeAggregate(geog) FROM Counties WHERE name = Washington';
•
• SELECT Geography::CollectionAggregate(geog) FROM Counties WHERE name = 'Washington';
• SELECT Geography::ConvexHullAggregate(geog) FROM Counties WHERE name = 'Washington';
- ב וחידושים SQL 2012שיפורים
•- ב :Circular Arcתמיכה– CircularString– CompoundCurve– CurvePolygon
הנדרשת – משמעותי באופן מצומצמת מידע כמות. מעוגלים קווים על מידע לשמור מנת על
ישרים – קווים מקטעי עם להשתלב יכול
DECLARE@CircularSegmentGEOGRAPHY=GEOGRAPHY::STGeomFromText('CIRCULARSTRING(0 -30, 0 0, 0 30)',4326);SELECT @CircularSegmentAS Shape;
DECLARE@CircularSegmentGEOGRAPHY=GEOGRAPHY::STGeomFromText('CIRCULARSTRING(0 -30, 0 0, 0 30)',4326);SELECT @CircularSegmentAS Shape;
Full Globe Support
•SQL 2008 פעם בכל כדור מוגבל היה
חדשות • במתודות תמיכה– EnvelopeAngle() method returns 180 for objects larger than a logical
hemisphere and < 90 for smaller objects– ReorientObject() reverses the ring orientation
DECLARE @Globe GEOGRAPHY=GEOGRAPHY::STGeomFromText('FULLGLOBE',4326);SELECT @Globe.STArea();-- calculate the area of the WGS84 ellipsoid-- Result: 510,065,621,710,996 square meters
DECLARE @Globe GEOGRAPHY=GEOGRAPHY::STGeomFromText('FULLGLOBE',4326);SELECT @Globe.STArea();-- calculate the area of the WGS84 ellipsoid-- Result: 510,065,621,710,996 square meters
Spatial Index Enhancements
פי • בנייה יותר 4-5מהירות מהירה•Auto-grid
הפרמטר – את GRIDSמחליף–- ב רמות 8משתמשיותר – רב דיוק נותןהאינדקס • של דחיסה
לחסוך – האינדקס 40-60%ניתן בשטח•Hints ביצועים לשיפור חדשים
למדנו ?מה
גיאוגרפית • מידע מערכת זו מהכזו • מערכת בבניית האתגרים•) / גיאוגרפי ) גיאומטרי הנשמרים המידע סוגי בין הבדלעובדים - • ואיך בנויים כיצד גיאוגרפיים אינדקסיםגיאוגרפיות • מידע שכבות איחוד•- ב וחידושים 2012שיפורים