小编new*_*int的帖子

SQL Server中SGAM&GAM&IAM&PFS的几个问题

有几个关于SQL Server内部结构的问题。

让我们假设我们在数据库中有一个表。

  1. SGAM 和 GAM 页面在单个 GAM 间隔(~4GB)内跟踪共享和统一范围,并帮助我们在分配页面/范围时找到合适的范围类型(​​最初前 8 个页面是从混合范围分配的,这些页面的位置是记录器到 IAM 页面,然后从 GAM 范围(统一范围)和此信息存储在下一个链接的 IAM 页面中)。

    假设为表分配了页面,并且表大小超过 8 个页面,稍后,行被删除,留下一些可重用的空间。SQL Server 如何知道扩展区有可用空间?

    页面有关于可用空间大小的信息,但检查每个页面太耗时。SGAM 和 GAM 页面中的位没有告诉我们除了扩展已分配或有一些空闲页面(整个页面是空闲的,不是部分空闲的)之外的任何内容。

  2. 文件头 & SGAM & GAM & IAM 页是文件中的第一页。什么数据结构实际上指向它们?

sql-server database-internals

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

不确定如何在此关系数据库模式中实现某些约束和关系

我正在为学校项目设计 dB- 机票数据库。(使用 MySQL 工作台)

到目前为止,我想出了以下设计: 数据库图

以下是我无法弄清楚的几件事:

  1. 将外键作为非整数值(例如Varchar)是个好主意吗??
  2. 数据库需要以某种方式跟踪预订的座位数量和特定航班上的乘客数量。不知道在哪里放置这些属性。
  3. 如何确保Flight特定航班的到达城市和出发城市(从表中)不同?

mysql database-design

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

SQL Server 2012 中不同的子句如何处理 Null/Unknow?

(SQL 和 SQL Server 相对较新)我正在阅读Itzik Ben-Gan 的SQL Server 2012 T-SQL Fundamentals。奥托尔指出:

SQL 在不同的语言元素中对 UNKNOWN 有不同的处理方式

所以,我浏览了 SQL Server 文档,特别是WHEREclause,但找不到任何关于如何NULL/UNKNOWN处理的具体信息。

有人可以指出我正确的文档或指出我在文档中读错的内容吗?(我高度怀疑我的问题的答案深藏在 SQL 标准的某个地方,但对我来说可能太复杂了,至少在这一点上。)

null sql-server

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

SQL Server 2012 中非聚集索引的用途

(SQL Server 新手)我正在努力理解 SQL Server 中非聚集索引的用途。虽然阅读了 MS 文档(v2012 和 v2008 都有漂亮的图片)和一些在线资源,但仍然有很多悬而未决的问题。

  1. 是否非常规。索引维护排序的 B 树?据我了解,它确实 - http://technet.microsoft.com/en-us/library/aa933130%28v=sql.80%29.aspx,否则书籍索引的类比将没有任何意义。
  2. 你到底为什么想要 noncl。使用聚集索引或堆在表或视图上定义索引?堆没有顺序,所以定义 noncl。堆上的索引有一定的意义 - 您可以快速找到完全匹配的内容。但是,带有聚集索引的表已经是有组织的数据,并且定义了 noncl。index 只会加速精确搜索。

sql-server

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