求助帖,有大佬可以帮忙看看吗

淮里路小佩奇 2022-09-13 10:43:06

大佬们:

请问数据库不同表中的数据会存储到同一页中吗?如果会存储到同一页的话,

已知truncate通过释放存储表数据所用的数据页来删除数据,那么如果表中数据不足一页truncate怎么删除呢?

...全文
82 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
人间十年 2022-09-13
  • 打赏
  • 举报
回复

请再补充一下说明。

淮里路小佩奇 2022-09-13
  • 举报
回复
@人间十年 第一个疑惑点是:数据库文件存储是以页为存储单元的,有没有可能不同表中的数据存储在同一页中呢 第二个疑惑点是:假设第一个问题成立的情况下,truncate通过释放存储表数据所用的数据页来删除数据,如果一页中包含不同表中的数据时,truncate如何删除这一页中的数据呢? 可能我的表述不是特别清楚,语文限制了我的表达,实在抱歉
人间十年 2022-09-13
  • 举报
回复 1
@淮里路小佩奇 第一:不太可能;我记得是一页只能保存一张表的数据,如果一页中包含了表A的一行数据,这页就只能存储表A的行数据了。 但是一张表可以有很多页。
人间十年 2022-09-13
  • 举报
回复
@淮里路小佩奇 第二:如果成立,会有相同的id号码。类似于下面语句中的object_id。 这知识点好像没啥用。。。忘光了快 SELECT OBJECT_NAME(i.object_id) as 表名, data_pages as 数据页数,* from sys.indexes as i Join sys.partitions as p on p.object_id = i.object_id and p.index_id= i.index_id join sys.allocation_units as a on a.container_id = p.partition_id where i.object_id = OBJECT_ID('tableA')
2条回复

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧