cMi*_*nor 6 sql-server size double
在上一个问题中 @Morawski说"一个包含1,000列和44,000行的表它大约有330 MB;这就是浏览器只使用几个打开的选项卡".
该表应该具有多少列和行来告诉它的大小 > 10 GB (假设该表只有双值).
@Morawski如何得出结论,1,000列和44,000是330MB?
是否有任何脚本可以在SQL中告诉它?
Jon*_*ton 12
有一个sproc调用sp_spaceused.不知道这是否是@Morawski所使用的,但作为一个dev db的一个例子我很方便:
exec sp_spaceused 'aspnet_users'
Run Code Online (Sandbox Code Playgroud)
给
name rows reserved data index_size unused
------------- ------- ------------ -------- ------------ ----------
aspnet_Users 3 48 KB 8 KB 40 KB 0 KB
Run Code Online (Sandbox Code Playgroud)
小智 7
-- Measures tables size (in kilobytes)
-- Tested in MS SQL Server 2008 R2
declare @t table (
name nvarchar(100), [rows] int, [reserved] nvarchar(100), [data] nvarchar(100), [index_size] nvarchar(100), [unused] nvarchar(100)
)
declare @name nvarchar(100)
declare tt cursor for
Select name from sys.tables
open tt
fetch next from tt into @name
while @@FETCH_STATUS = 0
begin
insert into @t
exec sp_spaceused @name
fetch next from tt into @name
end
close tt
deallocate tt
select name as table_name, [rows] as rows_count, data + [index] as total_size, data as data_size, [index] as index_size
from (select name,
[rows],
cast (LEFT(data, LEN(data)-3) as int) data,
cast (LEFT(index_size, LEN(index_size)-3) as int) [index]
from @t
) x
order by 3 desc, 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19343 次 |
| 最近记录: |