2013-10-23 47 views
0

我知道基本的SQL/RDBMS,而不是經驗豐富的DBA知道的那種詳細信息。如何獲取SQL變量,列等消耗的內存?

我需要知道一個變量(如int,bigint,日期時間)消耗了多少內存。我還需要知道多少內存是由一個VARCHAR消耗(50)列在兩種情況下 -

1] The Column is filled with strings of size 50 
2] Column has all Null 

這背後的目的是爲了使對ETL /數據傳輸的估計。

我也想知道如何將SQL服務器結果存儲到磁盤上的緩存中,然後通過塊(由於內存相關問題執行此操作)從緩存中檢索數據。但是,我會提出另一個問題。

+1

您是否檢查數據類型的[technet](http://technet.microsoft.com/en-us/library/ms187752.aspx)文檔? – AgentSQL

回答

2

除了documentation linked in the comment,請注意varchar存儲取決於實際輸入的數據。

http://technet.microsoft.com/en-us/library/ms176089(v=sql.100).aspx來自:

存儲大小爲輸入+ 2個字節的數據的實際長度。

+0

如何將數據長度轉換爲字節?例如。如果我只有包含10位數字代碼的varchar(50),那麼一個這樣的行消耗的內存是多少?一旦我明白了,我可以添加2Bytes並獲得完整的內存。 – Steam

+1

如果你有一個包含'1234567890'值的varchar(50),那麼我相信會消耗10 + 2 = 12個字節。如果它是一個字符(50),那麼無論內容如何,​​它都會消耗50個字節。 –