Fra*_*ani 3 sql-server t-sql bacpac
在 dba.stackexchange.com 上潜水我找到了一个很好的答案,教我如何.bacpac
使用文件资源管理器打开文件。
我用数据库试了一下,AdventureWorks2008R2
我所做的就是:
.bacpac
文件.zip
好了,您可以将数据库的表作为文件夹查看,并且在每个文件夹中您可以查看原始数据。
但是当我打开文件夹时,Person.Address
我看到里面有 38 个扩展名为.BCP
.
一开始我教他们是数据被分割的页面。但那些不能是页面,因为它们的重量约为67KB
. 页面应该权重8KB
。
所以我用这个查询检查了页数:
-- Total # of pages, used_pages, and data_pages for a given heap/clustered index
SELECT
t.NAME AS TableName,
p.rows AS RowCounts,
SUM(a.total_pages) AS TotalPages,
SUM(a.used_pages) AS UsedPages,
(SUM(a.total_pages) - SUM(a.used_pages)) AS UnusedPages
FROM
sys.tables t
INNER JOIN
sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN
sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
INNER JOIN
sys.allocation_units a ON p.partition_id = a.container_id
WHERE
t.NAME NOT LIKE 'dt%'
AND t.is_ms_shipped = 0
AND i.OBJECT_ID > 255
GROUP BY
t.Name, p.Rows
ORDER BY
t.Name
Run Code Online (Sandbox Code Playgroud)
我发现Person.Address
桌子上有689
页面。
那么这 38 个.BCP
文件是什么?
AMt*_*two 10
BACPAC
文件中的数据是使用批量复制 (BCP) 实用程序从数据库导出的。从文档:
大容量复制程序实用程序 (bcp) 在 Microsoft SQL Server 实例和用户指定格式的数据文件之间大容量复制数据。bcp 实用程序可用于将大量新行导入 SQL Server 表或将表中的数据导出到数据文件中。
BACPAC
文件包含使用 BCP 的“本机”文件格式导出的数据,这是一种二进制类型的文件。表的数据只是跨多个文件导出,而不是一个大文件。如果您查看.bcp
不同表中的文件,您会发现文件大小会有所不同,大小的偏差与具有不同数据宽度的不同行的变化有关。例如,当我创建bacpac
AdventureWorks 的.bcp
文件时,文件Purchasing.PurchaseOrderDetail
范围从 39kb 到 62kb。
BCP(以及BACPAC
生成)不像标准备份那样通过复制数据页来备份数据,而是进行表级查询和导出。
归档时间: |
|
查看次数: |
348 次 |
最近记录: |