使用 Microsoft SQL Server 2016 (RTM) - 13.0.1601.5 (X64) Express Edition(64 位)
我有一个每月达到最大空间(10Gb)的数据库。
为了腾出一些空间,我做了一个 bacpac,用 bacpac 创建一个新数据库并将其缩小 2 次。
数据库从 10Gb 变为 6Gb,使用该数据库的应用程序变得更快(我认为 bacpac 会刷新索引)。
是否有执行此操作的 SQL 命令?我可以在生产数据库中执行此操作吗?
使用 Microsoft SQL Server 2016 (RTM) - 13.0.1601.5 (X64) Express Edition(64 位)
我有一个每月达到最大空间(10Gb)的数据库。
为了腾出一些空间,我做了一个 bacpac,用 bacpac 创建一个新数据库并将其缩小 2 次。
数据库从 10Gb 变为 6Gb,使用该数据库的应用程序变得更快(我认为 bacpac 会刷新索引)。
是否有执行此操作的 SQL 命令?我可以在生产数据库中执行此操作吗?
我有一个继承的数据库模式,其中所有整数列都被定义为,int
但由于业务规则,许多数据类型可以替换为tinyiny
需要较少存储的其他数据类型。虽然我不期望通过使用较小的类型来提高性能,但我想要这样做的原因是:
该应用程序使用 SQL Server Express,因此我想在需要清除数据之前充分利用 10GB 的数据库大小。
该应用程序附带数据库的完整初始副本,并且使用 Microsoft Sync Framework 同步更新。一些客户端 PC 的 Internet 连接速度相对较慢,因此数据库越小越好。
我想知道是否有某种方法可以快速识别可能“过大”的列?我意识到需要仔细检查结果,以确保该列永远不会超过新数据类型的限制。
有没有办法查看 .mdf / .ldf 文件何时增长(历史/日志记录)?
最终,是否可以设置警报并在我的数据库/日志文件增长时立即知道?
我正在开发一个桌面应用程序,它将包括客户、账单、银行、收入和支出等,
我正在使用 mysql 和 delphi,
我的问题是我是否必须每年循环(创建新表并将需要的数据从旧表传输到新表以迎接新的一年)因为我认为数据库将有一年的数据并且它会逐渐变慢,有没有办法/是否可以在没有循环的情况下继续但数据库不会变慢?
我想这样做是因为我希望用户也能够找到/查看客户卡和过去的账单
谢谢
当您使用sys.database_files之类的东西时,它会给出文件的大小,以 8 KB 页面为单位,而您与之比较的许多其他内容以 MB 为单位。
将 8 KB 页面转换为 MB 有多种方法,Query 的答案中提供了几种方法来报告磁盘空间分配和已用空间
最常见的两种是
第二种更简单,只需要一次操作。但两者似乎都给出了相同的答案。
是否有充分的理由选择一种方法而不是另一种方法?
在查询数据库文件大小...
1)大多数(如果不是全部)这些答案并不总是与文件资源管理器中显示的物理文件大小相匹配:
https://stackoverflow.com/questions/5945360
接受的答案报告:
对比
2)这篇文章似乎与文件资源管理器中显示的物理文件大小相匹配:
是否有不依赖 dm_os_performance_counters 来报告物理大小的查询?第一组查询是否忽略了可用空间?
文件资源管理器报告的实际大小:
为什么 Tempdb 显示数据和日志文件大小的差异,如图所示?
Microsoft SQL Server 2012 (SP3) (KB3072779) - 11.0.6020.0 (X64)
我需要确定 oracle 数据库的总大小。关于改进以下查询的想法?
SELECT 'DataFiles: ' AS TYPE, SUM (bytes / 1024 / 1024) AS MB
FROM dba_data_files
UNION
SELECT 'Temp.: ', SUM (bytes / 1024 / 1024) AS MB FROM dba_temp_files
UNION
SELECT 'Redologs: ', SUM (bytes / 1024 / 1024) AS MB FROM v$log;
我刚开始使用 PostgresSQL。几年前我安装 SQL Server Express 时,如果您没有安装完整版,通常会有数据库存储限制。我想我记得它是 4GB,但这可能已经改变了。在不购买额外许可证或硬件的情况下,PostgresSQL 是否存在数据库存储大小限制?那限制是多少?
我对一个特定数据库的大小有一个非常奇怪的误报。
根据\l+
在psql
DB 大小是 292 MB。
对以下语句报告的大小求和也报告非常接近 292 MB。
SELECT
table_name,
pg_size_pretty(total_size) AS total_size
FROM (
SELECT
table_name,
pg_total_relation_size(table_name) AS total_size
FROM (
SELECT ('"' || table_schema || '"."' || table_name || '"') AS table_name
FROM information_schema.tables
) AS all_tables
ORDER BY total_size DESC
) AS pretty_sizes
然而pg_dump
,该数据库的一个生成 2.02 GB 的 sql 文件
我怀疑这两种计数方法都会跳过 LOB,因为该数据库中有两个表包含TEXT
内容较大的字段(每行最多约 4MB)。
有没有办法在大小计算中包含 LOB?
编辑: 它变得更加陌生:
这个查询:
SELECT SUM(LENGTH(text_column))
FROM some_table
给出的结果为 2,091,245,318(即 2.02 GiB),大约是转储的大小。
我有一个 Vertica 数据库。我怎么知道数据库有多大?
为了向高层管理人员报告有关我们环境的基本统计数据,我需要一个粗略的答案。