SQL查询关于相对路径、矢代、绝对路径、递归、计算列的速度对比跟优化-SOD群记录
1秒查原本递归的查询。 适用于:上下级。多层查询
-- Get childs by parent id
WITH Tree
AS
(
SELECT Id,ParentId FROM dbo.Node P WHERE P.Id = -- parent id
UNION ALL
SELECT C.Id,C.ParentId FROM dbo.Node C
INNER JOIN Tree T ON C.ParentId = T.Id
)
SELECT * FROM Tree -- Get parents by child id
WITH Tree
AS
(
SELECT Id,ParentId FROM dbo.Node C WHERE C.Id = -- child id
UNION ALL
SELECT P.Id,P.ParentId FROM dbo.Node P
INNER JOIN Tree T ON P.Id = T.ParentId
)
SELECT * FROM Tree
1、相对路劲、绝对路劲 就是差不多path这样一个列专门存放地址 ==》比较多用于分类
2、计算列
补充说明下 With关键字的用法 :
在写比较复杂的sql查询语句时,涉及到一个或多个select的语句,作为另外一个select语句的查询条件的情况时,如果一下子写不出来,可以利用with关键字,生成一个临时的表,然后在基于这个临时的表进行查询,这样,就减少了select语句的嵌套,同时也降低了难度。
存储过程中: 临时表的创建时有必要的。 尽量少用select * into #tb
SQL查询关于相对路径、矢代、绝对路径、递归、计算列的速度对比跟优化-SOD群记录的更多相关文章
- [数据库] SQL查询语句表行列转换及一行数据转换成两列
原文来自:http://blog.csdn.net/Eastmount/article/details/50559008 本文主要讲述了SQL查询语句表之间的行列转换,同时也包括如何将一行数据转换成两 ...
- SQL查询(笔记2——实体查询)
SQL查询(笔记2——实体查询) 二.实体查询 如果查询返回了某个数据表的全部数据列,且该数据表有对应的持久化类映射,我们就把查询结果转换成实体查询.将查询结果转换成实体,可以使用SQLQuery提供 ...
- SQL Server-聚焦计算列或计算列持久化查询性能(二十二)
前言 上一节我们详细讲解了计算列以及计算列持久化的问题,本节我们依然如前面讲解来看看二者查询性能问题,简短的内容,深入的理解,Always to review the basics. 持久化计算列比非 ...
- 提高SQL查询效率(SQL优化)
要提高SQL查询效率where语句条件的先后次序应如何写 http://blog.csdn.net/sforiz/article/details/5345359 我们要做到不但会写SQL,还要做到 ...
- (转)经典SQL查询语句大全
(转)经典SQL查询语句大全 一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql s ...
- hibernate使用原生SQL查询返回结果集的处理
今天没事的时候,看到公司框架里有一个用原生SQL写的函数,说实在以前自己也干过这事,但好久都没有用,都忘得差不多了,现在基本都是用的hql语句来查询结果.hibernate中使用createSQLQu ...
- 经典SQL查询语句大全
一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数 ...
- 提高SQL查询效率的常用方法
提高SQL查询效率的常用方法 (1)选择最有效率的表名顺序(只在基于规则的优化器中有效): Oracle的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driv ...
- Hibernate SQLQuery 原生SQL 查询及返回结果集处理-1
第一篇:官方文档的处理方法,摘自官方 在迁移原先用JDBC/SQL实现的系统,难免需要采用hibernat native sql支持. 1.使用SQLQuery hibernate对原生SQL查询执行 ...
随机推荐
- MySQL 添加列, 修改列, 删除列
ALTER TABLE:添加,修改,删除表的列,约束等表的定义. 查看列:desc 表名; 查看数据库创建语句: show create database 数据库名: 查看创建表的语句: show c ...
- jQuery.first() 函数
first() 函数详解 函数 获取当前对象的第一个元素 语法 $selector.first() 返回值 返回值为一个对象 实例说明 代码 <!DOCTYPE html><html ...
- Oralce 账户被锁后的解决办法
SQL> connect sys/sys as sysdba; 已连接. SQL> alter user system account unlock; 用户已更改. www.2cto.c ...
- Ruby--学习记录(实时更新)
变量的命名方式决定了变量的种类: 局部变量 以英文字母或者_开头: 全局变量 以$开头: 实例变量 以@开头: 类变量 以@@开头:
- SpringMVC之controller篇
概述 继 spring 2.0 对 Spring MVC 进行重大升级后,Spring 2.5 又为 Spring MVC 引入了注解驱动功能.现在你无须让 Controller 继承任何接口,无需在 ...
- frame里的链接跳转
<a href="javascript:parent.location='index_frame.html';void(0);">索引</a> <a ...
- 【转】Centos升级Python 2.7.12并安装pip、ipython
Centos系统一般默认就安装有Python2.6.6版本,不少软件需要2.7以上的,通过包管理工具安装不了最新的版本,通过源码编译可以方便安装指定版本,只需要把下面版本的数字换成你想要的版本号. 1 ...
- 【安全测试】WebGoat安装
参考资料:http://wenku.baidu.com/link?url=Qg8GOqw6-CK92-3Dgrm608TlJjDtKMLU9ZlC73Js9LD2FZFgqdHEfJ2sTIRCae_ ...
- python 汇总
TypeError: ReadExcelList() takes exactly 1 argument (2 given) 传入的参数有问题
- SAP验证
需求:财务录费用凭证,检查科目6601001-6601999 & 成本中心为1000R001 - 1000R999,工单不能为空 GGB0 1.选择财务凭证->行项目->新建确认' ...