none
資料列的大小 RRS feed

解答

  • 程式碼區塊

    select sum(length)
    from syscolumns
    where id = object_id('我的資料表')

     

    如果是要實際的資料長度,請用 DATALENGTH()
    2007年12月1日 下午 12:31
    版主
  • 假設我的資料表Table1有三個欄位都是 nchar(10)

    每個nchar(10)因為是Unicode應該是佔20byte

     

    所以執行

     

    select sum(length)
    from syscolumns
    where id = object_id('test.dbo.table1')

     

    傳回結果是60

    sum(length) = 20+20+20

     

    這是每一個資料列佔的大小

     

     

    至於用

     

    exec sp_spaceused 'test.dbo.table1' 是 查出整個資料表所佔的空間

     

    兩者計算單位不同 數字會有些許出入!!

    2008年2月14日 上午 08:51

所有回覆

  • 程式碼區塊

    select sum(length)
    from syscolumns
    where id = object_id('我的資料表')

     

    如果是要實際的資料長度,請用 DATALENGTH()
    2007年12月1日 下午 12:31
    版主
  • Dear Sir:

     

    我下了您提供的語法查詢table A

    select sum(length)
    from syscolumns
    where id = object_id('A')

     

    結果為 150

     

    sp_spaceused 'A'

     

    結果為:    

    name    row         reserved      data     index_size   unused

    --------------------------------------------------------------------------

    A           98             24 KB        16 KB      8 KB             0 KB

     

    但不知要如何算才會是實際資料量,謝謝。

    2007年12月27日 上午 07:38
  • 這樣看起來,應該是指這個table A,目前有98筆資料

    而總資料量大小為 16KB,那一筆的資料量是否可以用:總資料量大小 / 總筆數 ???

    可以嗎...各位先進

     

     

    2007年12月27日 上午 08:24
  • 假設我的資料表Table1有三個欄位都是 nchar(10)

    每個nchar(10)因為是Unicode應該是佔20byte

     

    所以執行

     

    select sum(length)
    from syscolumns
    where id = object_id('test.dbo.table1')

     

    傳回結果是60

    sum(length) = 20+20+20

     

    這是每一個資料列佔的大小

     

     

    至於用

     

    exec sp_spaceused 'test.dbo.table1' 是 查出整個資料表所佔的空間

     

    兩者計算單位不同 數字會有些許出入!!

    2008年2月14日 上午 08:51