科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件VB.NET数据库工具教程之四

VB.NET数据库工具教程之四

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

索引是建立在数据库字段之上的数据结构,用于提供对数据的快速访问

作者:刘彦青编译 来源:yesky 2007年11月9日

关键字: vb.net 数据库 工具

  • 评论
  • 分享微博
  • 分享邮件
索引和关健字标签

  索引是建立在数据库字段之上的数据结构,用于提供对数据的快速访问。索引可以是唯一的,即每个关健字的值各不相同,非唯一的关健字的值可能代表2、3个不同的记录。每个数据库表应当有一个被称为主关健字的唯一索引。为了建立一个表的索引,点击工具条上的“索引”按钮,或者从“视图”菜单中选择“属性页”,“属性页”打开后,选择“索引/关健字”标签。


(图15)

  要创建索引,点击“新建”按钮,系统将创建一个缺省的索引名字。然后选择该索引的第一字段,我们可以根据需求选择尽可能多的字段,但需要注意的是,选择的字段越多,更新表时需要的时间越长。索引的使用应当仔细规划,以在代价不太大的情况获得更多的方便。

  如果有不止一个文件组,我们可以选择将索引放在数据库表之外不同的数据文件中。在有些情况下这是有利的,尤其是数据文件存储在单独的物理卷上时。由于能够提高性能,数据库管理员经常这样作。在较小的台式机数据库中只有一个文件组。接下来我们必须决定索引是否是唯一的,唯一的索引要求索引中的一个值只能出现在一个记录中,缺省情况下主关健字是唯一的索引。我们可以使用非唯一性索引加速对使用非唯一性实体的表的访问。如果只需要保证一个记录只有一个特定的值,我们可以使用唯一性约束,约束与索引类似,但它使用哈希函数值而不是实际的关健字值。通过使用哈希值,检查唯一性的速度将非常迅速,但它的不足之处是使用约束不能加速对数据的访问。

  如果出现相同的关健字,“忽略相同关健字”复选框能够使SQL Server不异常中断插入记录命令,这并不意味着记录将会被插入,SQL Server只是不会中断这一交易,但会发出警告,Transact-SQL脚本中的其它语句将会得到执行。如果没有选择该复选框,SQL Server将发出一个错误信息,中止并回退该交易。我的建议是不要选择该复选框,而在我们的程序中处理出错代码,否则,我们就可能不知道表没有得到正确的更新。

  另一个项目是“创建群集的索引”,这一选项适用于每全表只有一个索引的情况,它使SQL Server根据索引的排序对实际记录进行排序,这能够极大地提高顺序访问数据的速度,由于SQL Server必须将记录插入或移动到合适的位置,而不是简单地添加到表的末尾,插入和更新操作速度将因此而降低。

  最后的“不自动使用重新计算”选择框不应当选择,它与在运行查询时Query Optimizer决定如何以最佳方式访问表有关。在后面我们还将讨论这一问题。

  关系标签

  只要“属性页”一打开,我们就会看到“关系”标签。在该标签上我们能够定义表之间的关系,并提供“说明参考完整性”(DRI)。搞清楚下面二个相关联的概念之间的差别是十分重要的:关系使用外码描述不同表间的连接;在相关的字段更新或被插入时,参考完整性使SQL Server明白应当采取什么样的措施。下面我们来仔细地研究二者之间的差别。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章