עבור לתוכן

שאילתות SQL מצד שרת ביעילות

Featured Replies

פורסם

שלום!

אני משתמש ב SQL SERVER, ואני מעוניין לדעת מהי הדרך הכי יעילה לבצע שאילתות, כך שהנתונים ייטענו במהירות?

פורסם

אתה צריך לכתוב אותן ביעילות כמובן, אך מומלץ להשתמש ב-STORED PROCEDURE.

אתה בעצם כותב את השאילתה במסד נתונים ומריץ אותה בצד שרת שלך.

למשל exec sp_showItems

במקום את השאילתה עצמה.

פורסם

אם מדובר על שאילתות ששולפות נתונים אז מומלץ לאנדקס (Index) את הטבלה בהתאם לשאילתא.

בנוסף כדאי להשתמש ב Dynamic sql למנוע sql injection

פורסם

1. אין יתרון ל Stored Procedure על פני פונקציה או סתם שאילתה מבחינת יעילות. זה בדיוק אותו דבר.

2. כל שאילתה ב Sql Server מתבצעת ב Server side.

3. SQL דינמי מגדיל אפשרות ל Sql Injection, לא ההיפך. לא הבנתי את ההמלצה הזאת.

4. אכן מומלץ לאנדקס בהתאם לשאילתה.

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

פורסם
  • מחבר

שלום!

תודה לכולם :-)

מישהו אמר לי, שכדאי להשתמש ב - dataTable() של jquery

https://datatables.net/

שזה יכול לשפר ביצועים, ולהעביר את הביצועים והשאילתות לצד לקוח. האם זה נכון? או שזה לא יעיל?

(ואני מדבר על נתונים שנמצאים ב SQL SERVER)

תודה!

נערך על-ידי שריה 24

פורסם

למה שהעברת עיבור השאילתה לצד הלקוח בהכרח תשפר ביצועים? אולי הוא עובד על עגלה? או על פלאפון?

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

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

פורסם
1. אין יתרון ל Stored Procedure על פני פונקציה או סתם שאילתה מבחינת יעילות. זה בדיוק אותו דבר.

2. כל שאילתה ב Sql Server מתבצעת ב Server side.

3. SQL דינמי מגדיל אפשרות ל Sql Injection, לא ההיפך. לא הבנתי את ההמלצה הזאת.

4. אכן מומלץ לאנדקס בהתאם לשאילתה.

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

שימוש ב sql דינמי ב- Stored Procedure , עם שילוב פרמטרים והפעלה עם sp_executesql מונע Sql Injection

פורסם

הוא מונע, לעומת SQL דינמי בלי השיטות האלו.

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

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

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

אתה מדבר על דברים שאתה לא מבין בהם.

נערך על-ידי Ido.G

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים