none
Data types - SIZE ( storage size ) RRS feed

  • שאלה

  • שלום,

    האם מישהו מכיר אתר שמכה את סוכי ה DATA TYPES מבחינת הנפח שכל data type yupx.

    אני אחדד את השאלה , האם varchar20  ו varchar30 טופסים את אותו שטח איחסוןן,מה האבדל בין Nvarchar124  ל Nvarchar256.

    אני מקווה שהצלחתי להעביר את השאלה .

    תודה .

    איציק


    elfasikave

    יום ראשון 23 דצמבר 2012 18:34

תשובות

  • שלום איציק,

    1. http://msdn.microsoft.com/en-us/library/ms187752.aspx

    2. לא. ה 20 יתפוס 20 בתים וה 30 ....30.

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


    Ami Levin, SQL Server MVP. CTO, DBSophic LTD. - http://www.dbsophic.com/ --Performance is the most significant driver in maintaining data and service availability.--

    • הוצע כתשובה על-ידי Ivan Radchenko יום שני 24 דצמבר 2012 12:45
    • סומן כתשובה על-ידי Itzik Elfasikave יום שני 24 דצמבר 2012 16:31
    יום ראשון 23 דצמבר 2012 22:40
  • כפי שענו לך מדובר על מקסימום תווים.

    ובגלל זה קוראים לזה VAR char

    הגודל של השדה משתנה על לגודל המקסימאלי.

    זאת אומרת ש "itzik" יתפוס פחות מקום מאשר "thanks for all"

    לאומת זאת שדה char  יתפוס תמיד את כל המקום ולא משנה אם רשום רק קצת אותיות

    כך ש izik ו thanks for all  יתפסו  את אותו גודל מקסימאלי בשדה מסוג CHAR

    • הוצע כתשובה על-ידי Ivan Radchenko יום שני 24 דצמבר 2012 12:46
    • סומן כתשובה על-ידי Itzik Elfasikave יום שני 24 דצמבר 2012 16:31
    יום שני 24 דצמבר 2012 11:24
  • הי איציק,

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

    -----------------------------
    גיא גלנצר
    יועץ ומדריך SQL Server
    Madeira - SQL Server Services
    http://www.madeira.co.il

    • הוצע כתשובה על-ידי Ivan Radchenko יום שני 24 דצמבר 2012 12:49
    • סומן כתשובה על-ידי Itzik Elfasikave יום שני 24 דצמבר 2012 16:31
    יום שני 24 דצמבר 2012 12:24
    מנחה דיון
  • שלום איציק,

    2. לא. ה 20 יתפוס 20 בתים וה 30 ....30.

    שלום אמי, איציק

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

    • סומן כתשובה על-ידי Itzik Elfasikave יום שני 24 דצמבר 2012 16:31
    יום שני 24 דצמבר 2012 09:37
  • fulltext index or adding a hash value column and index that column

    you can use checksum column or a computed column using the HashBytes() function


    signature

    יום שני 24 דצמבר 2012 14:17
    מנחה דיון

כל התגובות

  • שלום איציק,

    1. http://msdn.microsoft.com/en-us/library/ms187752.aspx

    2. לא. ה 20 יתפוס 20 בתים וה 30 ....30.

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


    Ami Levin, SQL Server MVP. CTO, DBSophic LTD. - http://www.dbsophic.com/ --Performance is the most significant driver in maintaining data and service availability.--

    • הוצע כתשובה על-ידי Ivan Radchenko יום שני 24 דצמבר 2012 12:45
    • סומן כתשובה על-ידי Itzik Elfasikave יום שני 24 דצמבר 2012 16:31
    יום ראשון 23 דצמבר 2012 22:40
  • שלום איציק,

    2. לא. ה 20 יתפוס 20 בתים וה 30 ....30.

    שלום אמי, איציק

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

    • סומן כתשובה על-ידי Itzik Elfasikave יום שני 24 דצמבר 2012 16:31
    יום שני 24 דצמבר 2012 09:37
  • אתה צודק זו כוונתי ,נכון כאשר אני נותן ל n הוא מציין את הערך המקסימלי,אז עפ"י הדוגמא מעלה 

    אם ב data type varchar(20) הכנסתי מחרוזת באורך 5 'itzik' ,האם גודל ה storage אהיה זהה אם הכניס 'thanks for all' ?

    אם כך מה היא התשובה המדוייקת ?

    תודה רבה חברה 

    איציק

    • סומן כתשובה על-ידי Itzik Elfasikave יום שני 24 דצמבר 2012 16:31
    • סימון כתשובה בוטל על-ידי pituachMVP, Moderator יום רביעי 23 ינואר 2013 13:44
    יום שני 24 דצמבר 2012 09:56
  • כפי שענו לך מדובר על מקסימום תווים.

    ובגלל זה קוראים לזה VAR char

    הגודל של השדה משתנה על לגודל המקסימאלי.

    זאת אומרת ש "itzik" יתפוס פחות מקום מאשר "thanks for all"

    לאומת זאת שדה char  יתפוס תמיד את כל המקום ולא משנה אם רשום רק קצת אותיות

    כך ש izik ו thanks for all  יתפסו  את אותו גודל מקסימאלי בשדה מסוג CHAR

    • הוצע כתשובה על-ידי Ivan Radchenko יום שני 24 דצמבר 2012 12:46
    • סומן כתשובה על-ידי Itzik Elfasikave יום שני 24 דצמבר 2012 16:31
    יום שני 24 דצמבר 2012 11:24
  • הי איציק,

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

    -----------------------------
    גיא גלנצר
    יועץ ומדריך SQL Server
    Madeira - SQL Server Services
    http://www.madeira.co.il

    • הוצע כתשובה על-ידי Ivan Radchenko יום שני 24 דצמבר 2012 12:49
    • סומן כתשובה על-ידי Itzik Elfasikave יום שני 24 דצמבר 2012 16:31
    יום שני 24 דצמבר 2012 12:24
    מנחה דיון
  • גיא ,

    הרבה תודה על ההסבר.

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

    לשאלתו-אחד מלקוחותיו רוצה לעשות אינדקס על עמודה מסוג nvarchar2000 .

    מה הייתיה ממליץ למקרה שכזה?

    תודה רבה 

    איציק


    • סומן כתשובה על-ידי Itzik Elfasikave יום שני 24 דצמבר 2012 16:31
    • סימון כתשובה בוטל על-ידי pituachMVP, Moderator יום רביעי 23 ינואר 2013 13:44
    יום שני 24 דצמבר 2012 12:31
  • תודה רבה על העזרה 
    • סומן כתשובה על-ידי Itzik Elfasikave יום שני 24 דצמבר 2012 16:31
    • סימון כתשובה בוטל על-ידי pituachMVP, Moderator יום שני 24 דצמבר 2012 16:35
    יום שני 24 דצמבר 2012 12:31
  • תודה רבה על העזרה 
    • סומן כתשובה על-ידי Itzik Elfasikave יום שני 24 דצמבר 2012 16:31
    • סימון כתשובה בוטל על-ידי pituachMVP, Moderator יום שני 24 דצמבר 2012 16:34
    יום שני 24 דצמבר 2012 12:31
  • תודה רבה על העזרה 
    • סומן כתשובה על-ידי Itzik Elfasikave יום שני 24 דצמבר 2012 16:31
    • סימון כתשובה בוטל על-ידי pituachMVP, Moderator יום שני 24 דצמבר 2012 16:34
    יום שני 24 דצמבר 2012 12:31
  • fulltext index or adding a hash value column and index that column

    you can use checksum column or a computed column using the HashBytes() function


    signature

    יום שני 24 דצמבר 2012 14:17
    מנחה דיון