分类: 数据库 |
  • 1
预览模式: 普通 | 列表
  由于数据库存储的数据都是以平面方式存储,所以目前大部分论坛和其他程序都是用递归来展现层次数据的,如果分类的层次十分深的话那么使用的递归次数相当可观,对性能的影响也非常大。最近要做一个分类信息的平台就遇到这个问题了,那么如何实现快速的展现分层数据呢?MySQL 的开发者帮我们想到了一个算法,这个算法目前唯一的问题就是尚未实现分类排序,我们可以通过右值的反向排序实现先入先出的排序。在这里我们需要了解的是如何用 SQL Server 来实现,我们就以省市县数据库为例来实现:

  如图所示我们将一个树节点的左右各编上号码,就可以看出一些规律,山西的左右值为(8,17),那么所有左值大于8,右值小于17的节点都是属于山西的子节点。稷山县的左右值为(14,15),那么他的所有父节点就是左值小于14,右值大于15的节点,怎么样,用这个方法实现的无限级分类性能绝对是顶呱呱的。一次查询就可以查出属于某个节点的数据以及他子节点的数据。这个算是我见过性能最高的无限级分类算法。其他算法跟这个对比基本没有任何优势。

我们先建立一个数据表,结构如下图(LID 为左值,RID 为右值,Tree 为节点深度,Name 和 ID 就不多说了,节点的索引和名称)

查看更多...

Tags: SqlServer 数据库 sql 存储过程 分类

分类:数据库 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1024
  今天IT交流群里有朋友提了个问题:
  表:k0904sour,字段:sour,数值举例:
  07:43,11:32,12:53,17:32,18:19,21:45
  07:37,11:33,12:35,17:33,18:21,21:50
  该字段是记录考勤打卡时间的,要求:清除18时以后的记录。

查看更多...

Tags: SqlServer 数据库 sql 字符串

分类:数据库 | 固定链接 | 评论: 1 | 引用: 0 | 查看次数: 1353
--附加数据库
sp_attach_db   '数据库名','数据库全路径','数据库日志全路径'
GO
USE 数据库名

查看更多...

Tags: SqlServer 数据库 sql

分类:数据库 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 2065
  今天早上断了下电,电脑再开起来后打开Sqlserver2000数据库,发现一个数据库的状态为置疑,无法使用。
  习惯性地百度。看到网上介绍的解决方法,基本上都是分离数据库,然后新建一个数据库,再用原来的数据库文件覆盖,最后还要执行一串的SQL语句。感觉好麻烦,于是我自己尝试着解决。
  我先分享数据库,然后再把分离出来的数据库附加回去,竟然成功了!
  如果你也碰到这样的问题,不烦按此方法一试。若不行,再按网上的那些麻烦的方法吧。我把那些解决方法摘录如下,以供参考

查看更多...

Tags: 数据库 SqlServer 故障

分类:数据库 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 2884

SQL Server性能调优入门(图文版)

第一步,在业务高峰期抓取样本数据(2个小时左右)。采用的工具是sqlserver自带的profiler,也叫事件探查器,如下图:

查看更多...

Tags: sql 数据库 索引 事件探查器 SqlServer

分类:数据库 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 2285
  • 1