如何用hash关键字提高数据库性能

ZDNet软件频道 时间:2006-03-24 作者:Arthur Fuller |  我要评论(1)
本文关键词:Datawarehousing sql ArthurFuller SQL Server
本文讨论了一个应用称为hash桶或hash关键字的字符串目录的方法。了解如何应用hash关键字有助于提高性能并节省磁盘空间。

本文讨论了一个应用称为hash桶(hash bucket)或hash关键字(hash key)的字符串目录的优秀方法。了解如何应用hash关键字有助于提高性能并节省磁盘空间。

普通的SQL Server应用程序要求支持一个或几个长字符串搜索。(本文中,我们称超过20个字符的字符串为长字符串。)假如前端应用程序希望允许用户提供两个字符串;你启动一个执行这两个字符串搜索任务的存储程序,然后应用两个相关列目录对搜索进行优化。在小型的表格中,你可能注意不到产生的效果。但是,如果表格包含5 000万行,它就会影响存储程序与搜索性能。

应用称为hash关键字(引用单独一个hash)或hash桶(一个hash关键字集合)的字符串目录的优秀方法可大大节省磁盘空间并提高性能。

何为hash(hash)

hash是应用一个指定字符串算法的整数结果。有各式各样的hash算法,但最常用的是内置的sql函数Checksum()。通常,你给这个函数一个字符串,它就返回一个整数(在大型表格中,我们不能保证这个整数的唯一性)。

数据库设计中的hash表格

假设在我们感兴趣的表格中有这些列:

列名

数据类型

名称

Varchar(50)

组名称

Varchar(50)

这两个列的多列目录每行会耗用50+50个字符,加上上面提到的5 000万行,这可是个相当大的难题。

基于这两个列的hash关键字相当的小,即每行四个字节。如果我们不将hash关键字存储在这一列的目录中,它还会更小。相反,我们应该建立一个计算列,该列的公式是这两个列的hash关键字,然后将那个列编入目录并忽视字符串对的目录。

Datawarehousing

sql

ArthurFuller

SQL Server


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134