ווטסאפ - לינוקס, BSD, קוד פתוח ותוכנה חופשית בעברית. Whatsup - Linux, BSD, open source and free software in Hebrew

 
 
  כניסת חברים · רישום · שכחתי סיסמה  
tux the penguin
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
BMWEלא בפורום כעת ת.הצטרפות: 30/07/2005 · הודעות: 47 · מיקום: באר שבע
 

הודעה פורסם: 05/11/2012 - 16:26
נושא ההודעה: profile ל bash script

שלום

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

תודה
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם MSN Messenger מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
ik_5לא בפורום כעת ת.הצטרפות: 16/04/2002 · הודעות: 3027 · מיקום: ישראל
 

הודעה פורסם: 05/11/2012 - 16:37
נושא ההודעה:

זה לרוב השאילתות שלך, ולא הסקריפט.

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

ככול שיש לך יותר join על המערכת (בעיקר אלו שהם לא natural join), הם יקחו לך יותר זמן לבצע פעולות.

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

כך שאי אפשר לספק לך תשובה. בייחוד בלי לדעת הרבה יותר מידע על מה שאתה עושה, מבנה השאילתות, טבלאות וכו'.

ד"א 500,000 רשומות זה לא הרבה Smile
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
elcucoלא בפורום כעת ת.הצטרפות: 14/10/2003 · הודעות: 6255 ·
 

הודעה פורסם: 05/11/2012 - 19:55
נושא ההודעה:

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

רב הזמן התסריט שלך יעביר ב-fork-ים.
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
mad_drלא בפורום כעת ת.הצטרפות: 03/08/2003 · הודעות: 771 ·
 

הודעה פורסם: 05/11/2012 - 19:57
נושא ההודעה:

מהניסיון שלי (mysql) ה-joinים הם לא החלק הכי כבד בשאילתא, אם הם מנוסחים נכון.

1. ב-mysql האופטימזר מסדר (לרוב) את ה-joinים לפי האינדקסים הראשיים. ככה שאם אתה משרשר את הטבלאות בצורה מסודרת לא תהיה בעיה גם לעבור על מילארדים של שורות בזמן סביר.
2. עוד דבר שקיים ב-mysql זה עבודה לפי אינדקס אחד בלבד, כלומר אם יש לך שני אנדקסים על עמודה א ו-ב, ובכל אחת מהעמודות האינדקס מצמצם ל-5% אם תשאל על שניהם (איפה ש-א=5 וב=9) mysql יוכל להשתמש רק באחד האינדקסים ולעבור על כולו (ולא יוכל להשתמש בשניהם). זה משפיע בעיקר על שאילתות עם OR על אינדקסים שונים (המשמעות היא מעבר על כל הטבלה, לא משנה מה)

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

אלקוקו, אתה צודק אם יש הרבה פתיחות של mysql, אבל בטח אפשר לפתוח סשיין אחד ולעבוד דרכו...

_________________
Image
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית MSN Messenger מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
BMWEלא בפורום כעת ת.הצטרפות: 30/07/2005 · הודעות: 47 · מיקום: באר שבע
 

הודעה פורסם: 05/11/2012 - 22:04
נושא ההודעה:

יכול להיות שהייתי צריך לנסח את השאלה קצת יותר טוב - אני שולף את הנתונים מה DB לתוך קובץ ועל הקובץ הנ"ל אני עושה את מה שאני צריך (עיקר הסקריפט)
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם MSN Messenger מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
borsoodלא בפורום כעת ת.הצטרפות: 05/01/2007 · הודעות: 306 ·
 

הודעה פורסם: 06/11/2012 - 00:05
נושא ההודעה:

אז אולי תעשה את מה שאתה צריך ב DB ישירות?
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
BMWEלא בפורום כעת ת.הצטרפות: 30/07/2005 · הודעות: 47 · מיקום: באר שבע
 

הודעה פורסם: 06/11/2012 - 06:57
נושא ההודעה:

borsood :
אז אולי תעשה את מה שאתה צריך ב DB ישירות?

לא ניתן
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם MSN Messenger מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
mad_drלא בפורום כעת ת.הצטרפות: 03/08/2003 · הודעות: 771 ·
 

הודעה פורסם: 06/11/2012 - 10:52
נושא ההודעה:

BMWE :
borsood :
אז אולי תעשה את מה שאתה צריך ב DB ישירות?

לא ניתן

כנראה שכל הסקריפטים שלך יעבדו על כל השורות (מן הסתם grep ו-awk ושאר ירקות) ככה שזמן הריצה שלך יהיה תלוי במימושים שלהם ובקריאה מהכונן.
לשיפור תנסה להעלות את הקובץ בשלמותו ל-RAM במקום לכונן הקשיח.

בכל מקרה, תוסיף קריאות ל-date במהלך הסקריפט עד שתגלה את הפקודה הבעייתית...

_________________
Image
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית MSN Messenger מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
הצגת הודעות מלפני:     
מעבר אל:  
כל הזמנים הם GMT + 2 שעות
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
PNphpBB2 © 2003-2004 

תוכן הדיון

  1. BMWE
  2. ik_5
  3. elcuco
  4. mad_dr
  5. BMWE
  6. borsood
  7. BMWE
  8. mad_dr