מחשביםמאגרים

פרוצדורות מאוחסנות SQL: ליצור ולהשתמש

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

הקדמה

אנשים רבים מאמינים כי הם דומים לנהלים של שונות שפות תכנות ברמה גבוהה (בהתאמה, למעט SQL MS). אולי זה נכון. יש להם פרמטרים דומים, הם יכולים להנפיק בשווי דומה. יתר על כן, במקרים מסוימים, הם באים במגע. לדוגמא, הם משולבים עם מסדי נתונים של DDL ונתוני DML, כמו גם פונקציות משתמש (שם קוד - UDF).

למעשה נהלים SQL מאוחסן יש מגוון רחב של יתרונות המבדילים אותם בין תהליכים כאלה. בטיחות, הפרודוקטיביות תכנות שונות - כל זה מושך משתמשים בעבודה עם מסדי נתונים, יותר ויותר. בשיא הפופולריות הגיע נהלים לשנים 2005-2010, כאשר קיבלתי את התוכנית מן "מיקרוסופט" תחת השם «SQL Server Management Studio». בעזרתו, עבודה עם מסדי נתונים הפכה הרבה יותר קלה, יותר פרקטית ונוחה יותר. שנה אחר שנה, זו השיטה של העברת מידע לפופולריות בסביבת התכנות. היום, MS SQL Server הוא בהחלט תכנית רגילה, אשר עבור משתמשים כדי "לתקשר" עם מסדי נתונים, עמד בשורה אחת עם "אקסל".

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

כדי ליישם את העבודה הזאת עם המידע, יש טכנולוגיות בכמה שפות תכנות. אלה כוללים, למשל, PL / SQL מן מערכת ניהול מסד נתונים אורקל, psql ב InterBase ו Firebird מערכות, כמו גם את "maykrosoftovskih» Transact-SQL קלאסי. כולם נועדו ליצור ולהפעיל פרוצדורות מאוחסנות, ומאפשרים לך להשתמש באלגוריתמים שלהם על מטפלי מסד נתונים גדולים. זה הכרחי כדי להבטיח כי מי לבצע ניהול של מידע כזה, יכול להגן על כל האובייקטים מצדדים שלישיים בלתי מורשה, ולכן, יצירה, שינוי או מחיקה של נתונים מסוימים.

הפרודוקטיביות

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

בטיחות

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

העברת נתונים

תקשורת בין הליך SQL מאוחסן ואת יישום הלקוח היא להשתמש בפרמטרים ולחזור לערכים. זה האחרון אין צורך להעביר את הנתונים המאוחסנים נוהל, אך המידע (בעיקר על פי בקשת המשתמש), ומעובדים עבור SQL. הליך מאוחסן לאחר השלים את העבודה שלה, היא שולחת את מנות נתונים בחזרה (אבל, שוב, אם רוצה) אל היישום קורא באמצעות מגוון של שיטות שבאמצעותו ניתן ליישם כקריאת הליך SQL מאוחסן בתמורה, למשל:

- העברת נתונים באמצעות סוג פרמטר פלט;

- העברת נתונים באמצעות משפט החזרה;

- שידור נתונים באמצעות בחירת מנשא.

ועכשיו תראה איך התהליך הזה נראה אותו מבפנים.

1. צור EXEC-מאוחסן ההליך SQL

אתה יכול ליצור נוהל ב MS SQL (Managment Studio). לאחר ההליך נוצר, זה מופיע על צומת מסד לתכנות, שבו ההליך מבוצע על ידי מפעיל בריאה. כדי לבצע פרוצדורות SQL מאוחסן באמצעות EXEC-תהליך המכיל את שם האובייקט.

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

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

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

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

- הגוף אינו יוצר שום הליך מאוחסן אחר;

- הגוף אסור ליצור רושם מוטעה על האובייקט;

- הגוף אינו יוצר כל טריגרים.

2. הגדר את המשתנה בגוף של ההליך

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

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

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

3. יצירת פרוצדורה מאוחסנת SQL

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

בדוגמה הקודמת, ההליך לוקח שני פרמטרים, אשר באנגלית ייקרא על תנאי @State ו @City. סוג הנתונים תואם לסוג שפורט בבקשה. גוף ההליך יש @TotalAuthors משתנה פנימי (כל המחברים), והמשתנה הזה משמשת להצגת המספר שלהם. לאחר מכן מגיעה בקשת בחירת סעיף שכל הספירות. לבסוף, הערך מחושב מוצג בחלון הפלט באמצעות הצהרת ההדפסה.

כיצד לבצע הליך מאוחסן SQL

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

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

4. פרוצדורות מאוחסנות SQL Server: דרכי חוזר

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

- ערכי החזרה הליך מאוחסנים;

- פרוצדורות מאוחסנות פרמטר פלט;

- בחר באחד מההליכים המאוחסנים.

4.1 ערכי שבות נהלי SQL מאוחסן

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

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

4.2 פרמטר פלט SQL פרוצדורות מאוחסנות

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

בדוגמה זו, יהיו שם שני סופי שבוע: @TotalAuthors ו @TotalNoContract. הם מפורטים ברשימת הפרמטרים. משתנים אלה מוקצים ערכים בתוך הגוף ההליך. כאשר אנו משתמשים בפרמטרים פלט, המתקשר יכול לראות את הערך שנקבע בגוף ההליך.

בנוסף, בתרחיש הקודם, שני משתנים מוכרז כדי לראות את הערכים מותקנים פרוצדורות מאוחסנות, MS SQL Server כפרמטר פלט. ואז ההליך מבוצע על ידי יישום הערך הנורמלי «CA» פרמטר. הפרמטרים הבאים הם פלט, ולכן, הכריז משתנים המועברים בדרך שנקבעה. שים לב שכאשר מילת מפתח פלט משתנה גם שצוין כאן. לאחר ההליך יושלם בהצלחה, הערך המוחזר על ידי שימוש בפרמטרי הפלט מוצג בחלון ההודעה.

4.3 בחירת פרוצדורות מאוחסנות SQL

טכניקה זו משמשת לחזור סט של ערכי נתוני שולחן טופס (רשום) שהתקשר הליך מאוחסן. בדוגמה זו, SQL מאוחסנת עם פרמטרים @AuthID מבקש "סופרים" השולחן על ידי סינון הרשומות המוחזרות על ידי @AuthId בפרמטר זה. מפעיל בחר מחליט מה צריך להיות חזר קורא הליך מאוחסן. כאשר הליך מאוחסן AuthId מועבר בחזרה. הליך כזה הוא תמיד מחזיר רק אחד תקליטים או בכלל. עם זאת, ההליך מאוחסן אין שום מגבלות על חזרתו של יותר מערך אחד. לעתים קרובות ניתן למצוא דוגמאות שבן הנתונים בתמורה שנבחרו באמצעות פרמטרים עם המשתנים מחושבים נעשים על ידי מתן ריבוי ערכים מוחלטים.

לסיכום

הליך מאוחסן הוא תכנית רצינית למדי, להחזרה או להעברה, כמו גם הקמת המשתנים הנחוצים בשל יישום הלקוח. מאז ההליך המאוחסן מבוצע על השרת עצמו, חילופי נתונים בנפחים גדולים בין השרת ואת יישום הלקוח (לחישובים מסוימים) ניתן להימנע. זה מאפשר להפחית את העומס על השרת SQL, אשר, כמובן, הוא מצד המחזיקים בהם. אחת תת-המין מאוחסן נהלי T SQL, אך המחקר שלהם הוא זקוק כדי המעורבים ביצירת מסד נתונים מרשימים. יש גם גדולה, אפילו כמות עצומה של ניואנסים שיכולים להיות שימושי במחקר פרוצדורות מאוחסנות, לעומת זאת, הצורך הזה עבור אלה שמתכננים לעשות תכנות הדוקה, כולל מקצועי.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 iw.delachieve.com. Theme powered by WordPress.