小编Sat*_*mar的帖子

如果数据计数增加,SQL Server DB 表数据大小查询结果不会增加

我有一个查询,它将显示 SQL Server 中数据库表的记录的表名、行数和大小。当我执行查询时,我得到了一个结果显示

TableName            NumberOfRows   SizeinKB
TBL_PROCESS_AUDIT2   1              16
Run Code Online (Sandbox Code Playgroud)

但是当我使用相同的插入查询将更多记录插入同一个表并执行查询时,它显示更多的行数 (50) 但大小相同 (16kb)。

TableName            NumberOfRows   SizeinKB
TBL_PROCESS_AUDIT2   50             16
Run Code Online (Sandbox Code Playgroud)

实际上,当表的行数增加时,它的大小也应该增加。因此,对于 1 条记录,大小为 16KB,因此对于 50 条记录,大小应为 800KB。当我插入像大约 2000 条记录这样的批量记录时,大小会有所不同。

我的查询中的逻辑或问题是什么?我想要一个数据库表的记录的实际大小。

我的查询:

CREATE TABLE #RowCountsAndSizes (TableName NVARCHAR(128),rows CHAR(11),      
       reserved VARCHAR(18),data VARCHAR(18),index_size VARCHAR(18), 
       unused VARCHAR(18))

EXEC       sp_MSForEachTable 'INSERT INTO #RowCountsAndSizes EXEC sp_spaceused ''?'' '

SELECT     TableName,CONVERT(bigint,rows) AS NumberOfRows,
           CONVERT(bigint,left(reserved,len(reserved)-3)) AS SizeinKB
FROM       #RowCountsAndSizes 
ORDER BY   NumberOfRows DESC,SizeinKB DESC,TableName

DROP TABLE #RowCountsAndSizes
Run Code Online (Sandbox Code Playgroud)

sql-server insert database-size sql-server-2014 bulk-insert

4
推荐指数
1
解决办法
767
查看次数

SQL Server Data Tools 是 Microsoft 的付费产品还是免费产品?

我在 Microsoft Pages 中没有找到有关 SQL Server Data Tools 许可和价格详细信息的证据。

https://docs.microsoft.com/en-us/sql/ssdt/download-sql-server-data-tools-ssdt?view=sql-server-2017

此处提供了下载和安装 SQL Server Data Tools 的所有说明,但未提及已获得许可的术语。

据我所知,搜索这些细节是我们的责任,但我没有得到任何线索。所以我的问题是 SQL Server Data Tools 是否免费?如果免费,那么我们是否只需按照以下链接中的说明下载并安装?如果已付款,定价详情在哪里?

https://docs.microsoft.com/en-us/sql/ssdt/download-sql-server-data-tools-ssdt?view=sql-server-2017

sql-server license sql-server-tools

1
推荐指数
1
解决办法
2290
查看次数

按功能分组在 SQL Server CTE 中无法正常工作

这是 SQL Server CTE,

;with grp (Sdate,TransactionType,tot)
as

(select cast(CallStartTime as DATE)Date, Transaction_type as [Transaction type], 
    (count ([Transaction_type])) as [Total Count] 
    from TBL_AGENT_TRANSACTIONS 
    where cast(CallStartTime as DATE)>='2015-04-27' and cast(CallEndTime as Date)<='2015-04-27'  and Transaction_type in ('Debit_Card')
    group by CallStartTime, Transaction_type)

select grp.Sdate,grp.TransactionType,sum(grp.tot) as totalCount from grp group by TransactionType,grp.Sdate,grp.tot
Run Code Online (Sandbox Code Playgroud)

这里我想根据 Sdate 和 Transaction Type 对 totalcount 进行分组。但它不能正常工作。我有 3 条具有相同 Sdate、Transaction Type 的记录,我需要将 totalcount 显示为 3 作为一行。但我得到如下两行。

在此处输入图片说明

任何人都可以帮我解决这个小问题吗?

更新:

我得到了确切的问题,

在我的表“ TBL_AGENT_TRANSACTIONS ”中,列“ Transaction_type ”的数据类型是 varchar 但我需要根据 Sdate 和 Transaction_type 找到该 Transaction_type …

sql-server cte group-by

0
推荐指数
1
解决办法
9988
查看次数