我有一個表有5列與nvarchar(255)數據類型。在標準報告中保留的KB是12,74576和數據是9,79,344。當我改變所有列到VARCHAR(255),保留KB升至15,54,687和數據也增加。然後我重新將所有列的數據類型更改爲nvarchar(255),但保留的KB和Data再次增加。我的問題是,無論何時我更改列的數據類型,無論是從nvarchar到varchar或反之亦然,標準報告顯示保留KB和數據增加。SQL表大小總是增加
回答
大小可以通過收縮數據庫可以減少:
- 打開SQL Server Management Studio中
- 選擇數據庫
- 打開上下文菜單
- 單擊任務
- 點擊收縮
- 點擊數據庫
這也可以通過執行DBCC SHRINKDATABASE
命令來實現。
如果要從特定表格回收空間,請使用'DBCC CLEANTABLE'命令。
關於最後一個命令的更多信息: https://msdn.microsoft.com/en-us/library/ms174418.aspx
爲nvarchar存儲Unicode數據。如果您有存儲UNICODE或多語言數據的要求,則可以選擇nvarchar。 Varchar存儲ASCII數據,並且應該是您正常使用的數據類型。關於磁盤使用情況,nvarchar使用每個字符2個字節,而varchar使用1.
我知道這就是爲什麼我很困惑,因爲通過將數據類型從nvarchar更改爲varchar,表大小必須減少,而增加。 –
它不會釋放空間而不縮小文件。 DBCC收縮命令。 –
在這種情況下,尺寸必須與以前相同,但它爲什麼會增加。 –
- 1. SQL Server 2008-表大小的增加
- 2. 列表增加其大小
- 3. 增加大小
- 4. 增加大小
- 5. 增加大小
- 6. 增加MYSQL列的大小總是透明的嗎?
- 7. push_back()總是增加一個向量的大小嗎?
- 8. SQL Server MDF文件的大小增加
- 9. 增加堆大小
- 10. 增加sc_fifo_out大小
- 11. UIImagePNGRepresentation增加輸出文件大小而不是減小大小
- 12. 當我增加圖像大小時td大小不會增加
- 13. 增加交換大小如何增加堆大小?
- 14. 的ListView是增加RelativeLayout的大小
- 15. 編寫自定義sql是否增加tde的大小?
- 16. 在SQL中增加列大小的潛在風險是什麼?
- 17. 增加子報表的大小
- 18. 動畫列表查看大小增加
- 19. 如何增加netezza表的列大小
- 20. Jfree圖表中增加圖例大小
- 21. 動態增加列表大小java
- 22. 如何增加oracle中表的大小?
- 23. 增加HTML表單的大小
- 24. 如何增加動作表的大小
- 25. 如何增加displaytag表字體大小
- 26. ios增加/減少表格大小
- 27. 增加列表的字體大小
- 28. sql azure設置值爲null增加表大小
- 29. 工作燈:加密的高速緩存大小總是增加 - 銷燬不行
- 30. 增加任務大小spark
我會避免不惜一切代價對生產數據庫執行此操作。這是非常危險的建議作爲一種選擇,而不是確保他們知道他們將經歷大量的分裂。這是關於這個主題的數百篇文章之一。 http://straightpathsql.com/archives/2009/01/dont-touch-that-shrink-button/ –
對於生產數據庫你確實要小心。考慮到Muhammad更改列數據類型的事實,我認爲它不涉及生產數據庫。 – Bouke
我的意思是,當你提出這樣一個有巨大潛在問題的建議時,你可以通過溝通這些注意事項來使你的答案更加完整。如果你認爲這不是生產,但事實上它們可能在生產中運行,然後想知道爲什麼他們的整個系統現在已經癱瘓了。 –