sql explore 2012 - aviad deri: spatial

37
Spatial יי יי יייי יי יי יייי

Upload: sqlservercoil

Post on 21-May-2015

637 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: SQL Explore 2012 - Aviad Deri: Spatial

Spatialאו מי

צריך את זה בכלל

Page 2: SQL Explore 2012 - Aviad Deri: Spatial

- ב משתמש ?Spatialמי

Page 3: SQL Explore 2012 - Aviad Deri: Spatial

כולנו!

Page 4: SQL Explore 2012 - Aviad Deri: Spatial

תוכן

ועליי • רפאל על קצת•? גיאוגרפית מידע מערכת זה מה

גיאוגרפית – מידע מערכת אתגרימידע • סוגי

גיאומטרי–גיאוגרפי–

אינדקסים••Tessellation•Spatial Aggregations•- ב ושיפורים SQL 2012חידושים

Page 5: SQL Explore 2012 - Aviad Deri: Spatial

רפאל על קצת

מתקדמות, • לחימה מערכות מגוון ומספקת מייצרת מפתחת: יכולות הביטחון למערכת תורמות אשר

בים–באוויר–ביבשה–

בשנת • מ – 2010רווחים ₪ 1.8למעלה מיליארד•- מ עובדים 5000למעלה

Page 6: SQL Explore 2012 - Aviad Deri: Spatial

עליי קצת

חיפה • באוניברסיטת מידע למערכות החוג בוגר•DBA- כ :6.5תשתיתי שנים

–MS SQL 2000-2012

–Oracle 9i-11g

–SQL Anywhere 10

–Sybase

Page 7: SQL Explore 2012 - Aviad Deri: Spatial

אחריות תחומי

•- מ למעלה של שוטפת במערכות 100תחזוקה שרתיםמרכזיות.

•: וכלים, שירותים מגוון של והטמעה הדרכה פיתוח–Reporting Services–Integration Services–Spatial–PowerShell–Mirroring, Replication... ועוד

שאילתות • וכיוונון ביצועים שיפור•" ל ברפא פרוייקטים וליווי ייעוץנתונים • בבסיסי מידע אבטחת

Page 8: SQL Explore 2012 - Aviad Deri: Spatial

מידע מערכת בעצם זה מה אזגיאוגרפית?

גיאוגרפיות )• מידע בהיבטים( GISמערכות המטפלות מידע מערכות הן " , . העסק כתובת את ברשומותיה תשמור ג ממ למשל המידע של המרחביים

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

כגון:כתובת – בין המרחק ?Yלכתובת Xמההכתובת – בשכונה Xהאם (?Yנמצאת פוליגון )כביש – ?Yוכביש Xהאם נחתכים – / ) משכונה ) אל יוצאים או הנכנסים קווים הכבישים כל את לי הבא

) פוליגון ) מסויימת• , . " מספר, נכס שווי למשל ורגילים נוספים נתונים גם שומרת ג ממ בנוסף

.' וכו דיירים

Page 9: SQL Explore 2012 - Aviad Deri: Spatial

המידע מערכת אתגריהגאוגרפית

אלגוריתמית • מורכבותביעילות – לענות מנת על מתוחכמים באלגוריתמים צורך יש

גיאוגרפיות שאילתות על

הנתונים • בסיסי נפח– . הרשומות מספר רב בהיקף מידע בשמירת צורך יש

)' , , מגיע) יורק ניו העיר של וכו חשמל קווי צינורות כבישיםרשומות למיליוני

תצוגה • בעיות– ,) המידע ) אמינות נכונה בצורה הנתונים את להציג איך

) ( ) גיאודיזה ) עיוותים ללא לעין ונעימה חדות מפורטת

Page 10: SQL Explore 2012 - Aviad Deri: Spatial

הנשמרים המרחבי המידע סוגיDBב-

:2נשמרים SQLב-• מרחבי מידע סוגיגיאומטרי•

ביסודי – ההנדסה משיעורי לכולנו מוכרצירים – , x,y,zמערכת , גובה רוחב אורך לציון– " ומצולעים קווים י ע מוגדרתגיאוגרפי•

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

Page 11: SQL Explore 2012 - Aviad Deri: Spatial

גיאומטרי מידע

: כגון שונים גיאומטריים אובייקטים מייצג(Pointנקודה )–

• ) יותר ) מורכבים אובקייטים ליצירת הביניין אבן ביותר הבסיסית כיחידה משמשתמדוייק • מיקום מייצגת• " צירים במערכת ציון נקודו י ע גם x,yמוגדרת להוסיף ניתן -zכאשר ו גובה Mלציון

: . למשל מידה יחידת POINT(10 10) / POINT(10 10 10 1)לציון•' , , וכו היקף שטח אורך כגון מאפיינים לה אין

(Linestringקו )–נקודות • מספר בין נתיב LINESTRING(0 0, 10 10)מצייןעצמו • את חותך לא הוא כאשר פשוטה כצורה נחשב• ) סגורה ) צורה יוצר הוא כאשר מעגל כטבעת נחשב• ( , מוגדר כאשר אפילו שטח לו אין אבל אורך לו יש מימדית חד כצורה נחשב תמיד

כמעגלי(

Page 12: SQL Explore 2012 - Aviad Deri: Spatial

(Polygonפוליגון )• , מימדית דו סגורה צורהואורך • שטח בעלת• " בתוכה " חורים להכיל יכולה

(Collectionאוסף )–המקובלות • התכנות שפות ברוב למערך מקביל• , פוליגונים או קווים נקודות של אוסף מכילנקרא • ביותר הגנרי GeomCollectionהאוסףנגזרים • MultiPoints,MultiPolygon,MultiLineStringממנו

Page 13: SQL Explore 2012 - Aviad Deri: Spatial

גיאומטרי מידע עם עבודה

שונות • בפונקציות להשתמש יש גיאומטריים אובקייטים עם לעבוד מנת עלכגון:

•STGeomFromText – תקין גיאומטרי לאובייקט מחרוזת הפיכת

SET @g = Geometry::STGeomFromText('LINESTRING(0 0, 10 10, 21 2)',0)

•STEnvelope – נתונה לצורה מסביב מרובע פוליגון יצירת

•STConvexHull – נתונה צורה של המתאר קווי את המקיף פוליגון יצירת

•STDifference " צורה)( – י ע הנחתכת צורה של השונה השטח את מחזירה

אחרת

•STIntersection – )(בין בלבד החופף השטח את נחתכות 2מחזירה צורות

•STUnion – )(של החופף השטח את נחתכות 2מחזירה צורות

Page 14: SQL Explore 2012 - Aviad Deri: Spatial

דוגמאות

Page 15: SQL Explore 2012 - Aviad Deri: Spatial

גיאוגרפי מידע

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

) הקורדינאטות) מערכת את מקרבת אשר דאטוםפני ) " גובה את המייצג המשטח הגיאואיד אל שלנו . במערכות" הנפוץ הדאטום הארץ כדור סביב הים

GPS הינוWGS84 למשטח יחסית קרוב שהוא מכיוןהארץ כדור ברוב הגיאואיד

Page 16: SQL Explore 2012 - Aviad Deri: Spatial

גיאוגרפי מידע

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

•: חישוביות לטעויות גורם נכון לא בדאטום שימוש–- ה בין 60בשנות גשר נכונים 2נבנה הלא האיים

בהוואי– , פגעו האמריקאים המפציצים המפרץ במלחמת

של בסטייה מהמטרה 750בקביעות מטרים

Page 17: SQL Explore 2012 - Aviad Deri: Spatial

Spatial indexes

•: הבאה הדוגמא על נסתכל– , בטבלה נשמרים באוניברסיטה ציונים במערכת

. הממוצע וציונו האישיים פרטיו סטודנט לכלשיש – , 20,000בהנחה רק לשלוף נרצה אם רשומות

ממוצע עם אלו , 90את זמן תיקח השליפה ומעלה) יחסית ) רב

– , שדה על אינדקס נגדיר השליפה שיפור לצורךהריצה יעילות את ונשפר הממוצע הציון

(O(n)O(logn).)

Page 18: SQL Explore 2012 - Aviad Deri: Spatial

על • השוואות מבצעות כלליות ששאילתות בעודסדר ) יחס " פי כוללות><=( השאילתות ג בממ

. מרחביים אופרטוריםשאילתות" • על גם לענות בנוסף נרצה ג בממ

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

• - מעבר אינדקס ללא הבעיה את לפתור אפשרהיא האם לבדוק רשומה ולכל הטבלה כל על

לא או אליעזר קרית של הפוליגון בתוך

Page 19: SQL Explore 2012 - Aviad Deri: Spatial

• " נשתמש ל הנ היעילות חוסר על להתגבר כדי . סוגי מספר קיימים גיאוגרפיים באינדקסים

יתרונות אחד ולכל גיאוגרפיים אינדקסיםוחסרונות.

מכונה • והפשוט הנפוץ Fixedהאינדקסquadtree index

בגודל • לריבועים העולם את מחלקים זו בשיטהצורה, ולכל הריבועים את ממספרים קבוע

. / נמצאת היא בו ים הריבוע את שומרים במרחב

Page 20: SQL Explore 2012 - Aviad Deri: Spatial

•: שלבים בשני יבוצע החיפוש כעתגס – חיפוש

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

שלהן • האריח מספר אשר הרשומות כל את נשלוף . גדול חלק פסלנו כבר זה בשלב ברשימה נמצא

מהרשומות

עדין – חיפושהפוליגון • בתוך הן האם נבדוק שנותרו הרשומות עבור

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

Page 21: SQL Explore 2012 - Aviad Deri: Spatial

-SQLב-• " ב שימוש י ע נשמרים -Bהאינדקסיםtrees.

• - האינדקס של מימדי הדו המידע שיטוח לצורך- ה עצי -Bלתוך - SQLה, ב four-levelמשתמש

grid hierarchyשמעליה • השכבה את מפרידה נוספת שכבה כל

נוסף בפירוט אותה ומציגה

Page 22: SQL Explore 2012 - Aviad Deri: Spatial
Page 23: SQL Explore 2012 - Aviad Deri: Spatial
Page 24: SQL Explore 2012 - Aviad Deri: Spatial

האינדקס צפיפות

להגדיר • ניתן באינדקס שכבה צפיפות 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

Page 25: SQL Explore 2012 - Aviad Deri: Spatial

Tessellation

• , את קורא האינדקס השטוחה הרשת בניית לאחר

ומבצע שורה אחר שורה הגיאוגרפית העמודה

. " משבצת" לאותה השייכים הנתונים של פסיפוס

• , " בכל" אחת שכבה השכבות ארבע בכל קורה פסיפוס ה

פעם.

לאינדקס • מוכנסים יש touched cellsבתהליך שבהם

. " " רגע באותו המאונדקס לאובייקט נוגעים ש אובייקטים

Page 26: SQL Explore 2012 - Aviad Deri: Spatial

Tessellation Rules

• , לאינדקס המוכנס המידע את להגביל מנת עלב . tessellation rules משתמשים

•The covering ruleכתא – נחשב הוא לגמרי תא מכסה האובייקט אם

מכוסהבתהליך – נחשב לא אבל נספר מכוסה תא

" פסיפוס" הבכל – תקף הזה השכבות 4החוקהאינדקס – בגודל וחוסך התהליך את מפשט

Page 27: SQL Explore 2012 - Aviad Deri: Spatial
Page 28: SQL Explore 2012 - Aviad Deri: Spatial

•The cells-per-object ruleאובייקט כל עבור הנשמרת המידע בכמות שולט החוק

" , התאים מספר של הגבלה י ע הנמוכות בשכבות) הראשונה ) בשכבה למעט אובייקט כל עבור הנספרים

Page 29: SQL Explore 2012 - Aviad Deri: Spatial

•The deepest-cell rule " י ע האובייקט את ביותר הטובה בצורה מאנדקס

ביותר התחתונה בשכבה המידע של .שמירהכמות בספירת נכללים לא העליונות בשכבות התאים

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

Page 30: SQL Explore 2012 - Aviad Deri: Spatial
Page 31: SQL Explore 2012 - Aviad Deri: Spatial

Spatial Aggregation

שונות • מידע שכבות של מאוחדת הצגת• SELECT Geography::UnionAggregate(geog) FROM Counties WHERE name = 'Washington';

• SELECT Geography::EnvelopeAggregate(geog) FROM Counties WHERE name = Washington';

Page 32: SQL Explore 2012 - Aviad Deri: Spatial

• SELECT Geography::CollectionAggregate(geog) FROM Counties WHERE name = 'Washington';

• SELECT Geography::ConvexHullAggregate(geog) FROM Counties WHERE name = 'Washington';

Page 33: SQL Explore 2012 - Aviad Deri: Spatial

- ב וחידושים  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;

Page 34: SQL Explore 2012 - Aviad Deri: Spatial

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

Page 35: SQL Explore 2012 - Aviad Deri: Spatial

Spatial Index Enhancements

פי • בנייה יותר 4-5מהירות מהירה•Auto-grid

הפרמטר – את GRIDSמחליף–- ב רמות 8משתמשיותר – רב דיוק נותןהאינדקס • של דחיסה

לחסוך – האינדקס 40-60%ניתן בשטח•Hints ביצועים לשיפור חדשים

Page 36: SQL Explore 2012 - Aviad Deri: Spatial

למדנו ?מה

גיאוגרפית • מידע מערכת זו מהכזו • מערכת בבניית האתגרים•) / גיאוגרפי ) גיאומטרי הנשמרים המידע סוגי בין הבדלעובדים - • ואיך בנויים כיצד גיאוגרפיים אינדקסיםגיאוגרפיות • מידע שכבות איחוד•- ב וחידושים 2012שיפורים

Page 37: SQL Explore 2012 - Aviad Deri: Spatial