Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 因此,在生产服务器上运行它将导致“一点”磁盘io。在2016年不起作用,“sp_MSForEachTable”不存在。试试看,您不需要创建临时表,然后将其删除。从sys.tables中选择T.name作为[TABLE name],选择I.rows作为[RO_Sql_Sql Server_Rowcount - Fatal编程技术网

Sql 因此,在生产服务器上运行它将导致“一点”磁盘io。在2016年不起作用,“sp_MSForEachTable”不存在。试试看,您不需要创建临时表,然后将其删除。从sys.tables中选择T.name作为[TABLE name],选择I.rows作为[RO

Sql 因此,在生产服务器上运行它将导致“一点”磁盘io。在2016年不起作用,“sp_MSForEachTable”不存在。试试看,您不需要创建临时表,然后将其删除。从sys.tables中选择T.name作为[TABLE name],选择I.rows作为[RO,sql,sql-server,rowcount,Sql,Sql Server,Rowcount,因此,在生产服务器上运行它将导致“一点”磁盘io。在2016年不起作用,“sp_MSForEachTable”不存在。试试看,您不需要创建临时表,然后将其删除。从sys.tables中选择T.name作为[TABLE name],选择I.rows作为[ROWCOUNT],从sys.tables作为T内部连接sys.sysindexes作为I ON T.object_id=I.id和I.indid


因此,在生产服务器上运行它将导致“一点”磁盘io。在2016年不起作用,“sp_MSForEachTable”不存在。试试看,您不需要创建临时表,然后将其删除。从sys.tables中选择T.name作为[TABLE name],选择I.rows作为[ROWCOUNT],从sys.tables作为T内部连接sys.sysindexes作为I ON T.object_id=I.id和I.indid<2 ORDER BY I.rows DESCWhat's“和T.name不像“%dss%”完成?@quillbreaker:排除由SQL Azure数据同步创建的表这非常有效。我坐下来说“这可能需要一段时间”,两秒钟就完成了。正在处理一个528表数据库,不知道它实际上有多大这在SQL Server 2016上运行良好;不需要这个“%dss%”很漂亮,正如@trench所说的,我有点害怕,在生产环境中运行和查询一些命令,在几个表中每个都有数亿条记录。。但它只是在Azure数据库上转瞬即逝。Thnx非常方便…只想说明“pa.index_id IN(1,0)”条件的原因:它是将一个表的行计数限制为一组。这里有更多信息-认为这不包括视图。除此之外,它的工作没有任何管理权限,这工作得很好。从sys.tables中选择T.name作为[TABLE name],从sys.tables中选择I.rows作为[ROWCOUNT],从sys.tables作为T.internal JOIN sys.sysindex作为I ON T.object_id=I.id和I.indid<2 ORDER BY I.rows desc几年后,这一方法非常适用于快速查看SQL Server 2017上每个表的行数。
declare c_tables cursor fast_forward for
select table_name from information_schema.tables

open c_tables
declare @tablename varchar(255)
declare @stmt nvarchar(2000)
declare @rowcount int
fetch next from c_tables into @tablename

while @@fetch_status = 0
begin

    select @stmt = 'select @rowcount = count(*) from ' + @tablename

    exec sp_executesql @stmt, N'@rowcount int output', @rowcount=@rowcount OUTPUT

    print N'table: ' + @tablename + ' has ' + convert(nvarchar(1000),@rowcount) + ' rows'

    fetch next from c_tables into @tablename

end

close c_tables
deallocate c_tables
CREATE TABLE #counts
(
    table_name varchar(255),
    row_count int
)

EXEC sp_MSForEachTable @command1='INSERT #counts (table_name, row_count) SELECT ''?'', COUNT(*) FROM ?'
SELECT table_name, row_count FROM #counts ORDER BY table_name, row_count DESC
DROP TABLE #counts
SELECT SUM(row_count) AS total_row_count FROM #counts

declare c_tables cursor fast_forward for 
select table_name from information_schema.tables 

open c_tables 
declare @tablename varchar(255) 
declare @stmt nvarchar(2000) 
declare @rowcount int 
fetch next from c_tables into @tablename 

while @@fetch_status = 0 
begin 

    select @stmt = 'sp_spaceused ' + @tablename 

    exec sp_executesql @stmt

    fetch next from c_tables into @tablename 

end 

close c_tables 
deallocate c_tables 
-- Shows all user tables and row counts for the current database 
-- Remove OBJECTPROPERTY function call to include system objects 
SELECT o.NAME,
  i.rowcnt 
FROM sysindexes AS i
  INNER JOIN sysobjects AS o ON i.id = o.id 
WHERE i.indid < 2  AND OBJECTPROPERTY(o.id, 'IsMSShipped') = 0
ORDER BY o.NAME
-- Shows all user tables and row counts for the current database 
-- Remove is_ms_shipped = 0 check to include system objects 
-- i.index_id < 2 indicates clustered index (1) or hash table (0) 
SELECT o.name,
  ddps.row_count 
FROM sys.indexes AS i
  INNER JOIN sys.objects AS o ON i.OBJECT_ID = o.OBJECT_ID
  INNER JOIN sys.dm_db_partition_stats AS ddps ON i.OBJECT_ID = ddps.OBJECT_ID
  AND i.index_id = ddps.index_id 
WHERE i.index_id < 2  AND o.is_ms_shipped = 0 ORDER BY o.NAME 
DECLARE @sql nvarchar(MAX)

SELECT
    @sql = COALESCE(@sql + ' UNION ALL ', '') +
        'SELECT
            ''' + s.name + ''' AS ''Schema'',
            ''' + t.name + ''' AS ''Table'',
            COUNT(*) AS Count
            FROM ' + QUOTENAME(s.name) + '.' + QUOTENAME(t.name)
    FROM sys.schemas s
    INNER JOIN sys.tables t ON t.schema_id = s.schema_id
    ORDER BY
        s.name,
        t.name

EXEC(@sql)
SET NOCOUNT ON 
DBCC UPDATEUSAGE(0) 
DROP TABLE #t;
CREATE TABLE #t 
( 
[name] NVARCHAR(128),
[rows] CHAR(11),
reserved VARCHAR(18), 
data VARCHAR(18), 
index_size VARCHAR(18),
unused VARCHAR(18)
) ;
INSERT #t EXEC sp_msForEachTable 'EXEC sp_spaceused ''?''' 
SELECT * INTO TEST FROM #t;
DROP TABLE #t;
SELECT  name, [rows], reserved, data, index_size, unused FROM TEST \
WHERE ([rows] > 0) AND (name LIKE 'XXX%')
USE  [enter your db name here]
GO

SELECT      SCHEMA_NAME(A.schema_id) + '.' +
        --A.Name, SUM(B.rows) AS 'RowCount'  Use AVG instead of SUM
          A.Name, AVG(B.rows) AS 'RowCount'
FROM        sys.objects A
INNER JOIN sys.partitions B ON A.object_id = B.object_id
WHERE       A.type = 'U'
GROUP BY    A.schema_id, A.Name
GO
    SELECT
          SUM(sdmvPTNS.row_count) AS [DBRows]
    FROM
          sys.objects AS sOBJ
          INNER JOIN sys.dm_db_partition_stats AS sdmvPTNS
                ON sOBJ.object_id = sdmvPTNS.object_id
    WHERE 
          sOBJ.type = 'U'
          AND sOBJ.is_ms_shipped = 0
          AND sdmvPTNS.index_id < 2
    GO
SELECT t.name, s.row_count from sys.tables t
JOIN sys.dm_db_partition_stats s
ON t.object_id = s.object_id
AND t.type_desc = 'USER_TABLE'
AND t.name not like '%dss%'
AND s.index_id IN (0,1)