一个业务场景,需要进行union查询: 查询速度非常慢,大概要37秒: 直接复制sql在数据库客户端执行,速度很快,由此可知是mybatis的原因,在网上搜索,可以配置fetchSize="500",但是测试结果还是一样,重新查看sql,返现子查询和合并后的查询,都是取的别名A,替换union后的别名,重新测试,分页查询正常:…
SELECT * FROM Master..SysDatabases ORDER BY Name SELECT Name,* FROM Master..SysDatabases where Name='TestDB' SELECT COLUMN_NAME,DATA_TYPE FROM INFORMATION_SCHEMA.columns WHERE TABLE_CATALOG like '%TestDB%' SELECT * FROM INFORMATION_SCHEMA.columns SEL…
原文:SQLServer 2008 技术内幕--T-SQL 查询 笔记 1.SQL编程有许多独特之处,如:面向集合的思维方式.查询元素的逻辑处理顺序.三值逻辑.如果不掌握这些知识就开始用SQL编程,得到的将是冗余的.性能低下的代码,而且难以维护. 2.在SQLServer中负责生成实际工作计划(执行计划)的组件是:查询优化器(query optimizer).只有在确保结果集正确的前提下,优化器才会走捷径.明确区分查询的逻辑处理和物理处理是非常重要的. 3.逻辑查询的各个阶段: (5) SELE…
Mybatis oracle多表联合查询分页数据重复的问题 多表联合查询分页获取数据时出现一个诡异的现象:数据总条数正确,但有些记录多了,有些记录却又少了甚至没了.针对这个问题找了好久,最后发现是由于多个排序字段不唯一,同样的排序顺序每次运行返回的结果顺序不一致,导致这样的现象出现. SELECT TEMP_.* FROM (select temp.*, ROWNUM ROWNUM_ from (SELECT t2.ID FROM tableA t, tableB t2 WHERE t.ID =…
前言:本文档使用的是 SpringBoot,如果是 Spring 还需要在 MyBatis 配置 xml 中配置拦截器,并且 PageHelper 是针对 MyBatis 的,MyBatis 的集成不在本文档中叙述,请先集成 MyBatis. 一.引入PageHelper分页插件 引入的方式有两种,可以是导入Jar包,也可以使用 Maven 来构建,本文档将使用 Maven 来构建项目,如果你希望使用导入Jar包的方式进行集成,请从下面的链接下载Jar包: https://oss.sonatyp…
废话少说 有参数可以设置 在org.springframework.boot.autoconfigure.data.web.SpringDataWebProperties 中 /** * Whether to expose and assume 1-based page number indexes. Defaults to "false", * meaning a page number of 0 in the request equals the first page. */ pr…
该篇博客记录采用pagehelper分页插件实现Mybatis分页功能 一.依赖 pom.xml <!-- pagehelper --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.5</version> <…
mybatis实现 主从表 left join  1:n 一对多 分页查询   主表从表都有查询条件+count 需求: ======================================== 1.主从表数据 是 1:m 2.主从表各自都有查询条件 3.最后查询结果 需要分页,并统计总数 注意: ======================================= 1.查询的分页,必须在数据库做,否则分页没有意义 解决方法: 注意 下面的入参中 [第一页的10条] pageN…
分页如果写在SQL脚本中,将会大大影响我们后续数据库的迁移难度.mybatis的分页一般是自己实现一个mybatis的拦截器,然后根据某些特定的条件开启分页,对原有SQL进行改造. 正在我对mybatis的拦截器进行研究的时候从网上找到了一个很好的分页插件,主页地址是 https://github.com/pagehelper/Mybatis-PageHelper 已经实现了拦截器/多种数据库的适配 基本上很方便的即可集成到我们的项目中.集成方式: 1.使用maven引入jar包: <depen…
learn from:http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html#Result_Maps 关联查询 准备 关联结果查询(一对一) resultMap复用 集合(一对多) 3 关联查询 做查询之前,先修改几个配置.mapper.xml是在mybatis-config.xml中指定,那么我们每增加一个mapper都要增加一个配置,很麻烦.为了简化配置.需要将mapper接口和mapper.xml放到同一个文件下,并且接口和xml文件命名一致…
SqlServer 一个查询语句导致tempdb增大55G 今天操作着服务器,突然右下角提示“C盘空间不足”! 吓一跳!~ 看看C盘,还有7M!!!这么大的C盘空间怎么会没了呢?搞不好等下服务器会动不了! 第一反应就想可能是日志问题,很可能是数据库日志问题 于是查看日志,都不大,正常. dbcc sqlperf(logspace) 看看系统报错: 是tempdb问题,但是刚才看日志才几M,根据提示查看日志状态: select name,log_reuse_wait_desc from sys.d…
二.查询缺少值的查询 在这里我们加入要查询2008年每一天的订单有多少?首先我们可以查询下订单表的订单日期在2008年的所有订单信息. 1 select distinct orderdate,count(*) as N'每日订单量' from sales.orders 2 where orderdate between '20080101' and '20081231' 3 group by orderdate 查询结果如图: 从上面可以看出来,每天的订单的数量根据orderdate分组以后统计…
    使用sqlserver作为数据库的应用系统,都避免不了有时候会产生死锁, 死锁出现以后,维护人员或者开发人员大多只会通过sp_who来查找死锁的进程,然后用sp_kill杀掉.利用sp_who_lock这个存储过程,可以很方便的知道哪个进程出现了死锁,出现死锁的问题在哪里. 创建sp_who_lock存储过程 CREATE procedure sp_who_lock   as      begin         declare @spid int         declare @bl…
前言 在之前已经大概了解过Mysql数据库和学过相关的Oracle知识点,但是太久没用过Oracle了,就基本忘了...印象中就只有基本的SQL语句和相关一些概念....写下本博文的原因就是记载着Oracle一些以前没注意到的知识点...以后或许会有用... 实例与数据库概念 Oracle数据库服务器由两部分组成: 实例:理解为对象,看不见的 数据库:理解为类,看得见的 我们在安装Oracle的时候,已经填写过自己数据库的名称了,一般实例与数据库的名称是一致的... 如果还没有安装Oracle数…
SqlServer 一个查询语句导致tempdb增大55G 今天操作着服务器,突然右下角提示“C盘空间不足”! 吓一跳!~ 看看C盘,还有7M!!!这么大的C盘空间怎么会没了呢?搞不好等下服务器会动不了! 第一反应就想可能是日志问题,很可能是数据库日志问题 于是查看日志,都不大,正常. dbcc sqlperf(logspace) 看看系统报错: 是tempdb问题,但是刚才看日志才几M,根据提示查看日志状态: select name,log_reuse_wait_desc from sys.d…
一对多需求:即一张表class中又含有多张表(teacher,student)内容.现根据class_id 来获取对应的班级信息(包括学生和老师信息) 方式一:嵌套结果 使用嵌套结果映射来处理重复的联合结果的子集 SELECT * FROM class c, teacher t,student s 方式二:嵌套查询 通过执行另外一个SQL映射语句来返回预期的复杂类型 //查询后获取到teacher_id,c_id值,传入下两条语句 是上条查询得到的teacher_id值 是上条查询得到的c_id…
问题背景 在一个多表查询的sql中正常情况下产生的数据都是唯一的,但因为数据库中存在错误(某张表中存在相同的外键ID)导致我这边查询出来的数据就会有重复的问题 下面结果集中UserID:15834存在多个   查询Sql如下: SELECT * FROM ( SELECT ROW_NUMBER() OVER ( ORDER BY T.USERID asc )AS Row ,T.USERID ,T.CreateTime FROM UserInfo T LEFT JOIN DiseaseInfo i…
上周三面试题有两道涉及Oracle的分页查询,没有意外地凉了,现在总结一下. · Mysql mysql的分页可以直接使用关键字limit,句子写起来比较方便. 语法: ① limit m,n -- (m+1)为取出行的起始序号 -- n 为取出的全部行数 select * from table where... limit m,n -- 上述语句等价于 select * from table shere... limit pageSize offset firstIndex 示例: -- 显示…
    记录下mybatis的集合查询中碰到的问题 https://jaychang.iteye.com/blog/2357143   MyBatis ofType和javaType区别 https://blog.csdn.net/u013216156/article/details/78642920   mybatis 关联查询 resultMap 同名冲突 https://blog.csdn.net/caser_hdmi/article/details/75948091   使用mybati…
  相信很多人都会用SQLSERVER联合查询和连接查询,但是用起来不一定都得心应手,对于其中的原理可能就模糊不清了,要想很牢固地掌握和运用SQL联合查询和连接查询机制,必须对其根本原理有很清晰认识,为此就让我们来用维恩图作详细说明吧! 百度经验:jingyan.baidu.com 工具/原料   SQLSERVER T-SQL 百度经验:jingyan.baidu.com 方法/步骤   1 首先用SQL查询分析器新建两个表A和B 步骤阅读 2 INNER JOIN内连接 步骤阅读 3 FUL…
SQLServer导出查询结果带表头(标题行) 平时我们经常会需要将SQLSERVER查询的结果复制到EXCEL文档中进行分析处理,但是有一件事很头痛,就是复制结果网格的数据到EXCEL之后,都是没有标题行的.所以我们不得不手工输入列标题. 其实在SQL2005当中,这个问题已经解决了,我们完全可以在复制网格内容的同时,将标题行一起复制到EXCEL当中. 打开SSMS,新建一个查询窗口,以这个简单查询为例: select 列名A='columvalue'  ,列名B='B' 查询结果网格显示如下…
一.连接查询(SQL99标准) 1.含义:当要查询的数据来自多张表时要使用连接查询 2.语法: select 查询列表 from 表1 别名 [连接类型] join 表2 别名 on 连接条件 [where 筛选条件] [group by 分组] [having 筛选条件] [order by 排序列表] 注意:SQL99标准支持以下连接方式: #1内连接 #2外连接:左外.右外.全外连接 #3交叉连接(很少用到) 3.内连接: 案例一:查询部门个数>3的城市名和部门个数(分组函数+分组查询)…
高级查询之一对一查询 查询条件:根据游戏角色ID,查询账号信息 我们在之前创建的映射器接口 GameMapper.java 中添加接口方法,如下: /** * 根据角色ID查询账号信息 * @param id 角色Id * @return 角色实体对象 */ public RoleEntity selectRoleById(int id); 接下来,我分别演示关联查询和子查询方式实现接口方法的映射. 关联查询方式: 现在我们暂时先抛开 MyBatis 框架,直接从数据库出发写一写关联查询的 SQ…
   今天一个同事突然告诉我,以前跑得很正常的一个SQL语句,执行时突然报如下错误:         消息1222,级别16,状态18,第1 行         已超过了锁请求超时时段.         消息8630,级别16,状态1,第1 行         内部查询处理器错误: 查询处理器在执行过程中遇到意外错误. 我执行了一下这个SQL语句,也是报如上错误,感觉有点奇怪,还是第一次遇到这种错误.我初步怀疑是SQL中某个表出现一致性错误或分配错误等原因造成.于是先用DBCC CHECKTAB…
关于datetime类型使用:  Oracle:  "and tb.EffectiveDate >= to_date(?,'yyyy-mm')" Sql:  "and tb.EffectiveDate >= Date(?,'yyyy-mm-dd')" Postgre: "and tb.EffectiveDate >= date(?)" 在Nhibernate中查询SqlServer ISQLQuery sqlQuery = Se…
在CoreData实际使用中,分页查询和模糊查询是必不可少的,接下来演示一下: 首先 // 1.创建模型文件 (相当于一个数据库里的表) // New File ———— CoreData ———— Data Model ———— Next // 2.添加实体 (相当于一张表) // 找到我们创建的模型文件(xxx.xcdatamodeld,我创建的叫School.xcdatamodeld)————Add Entity ———— 添加表内属性(这边我添加2个属性(name,age)) // 3.…
上一篇文章:我要上谷歌 Mysql,关系型数据库: HBase,NoSql数据库. 查询Mysql和查询HBase,到底哪个速度快呢? 与一些真正的大牛讨论时,他们说HBase写入速度,可以达到每秒1W.而HBase的理想速度为每秒10W. 来个实验说明一下,此实验只能表明,当前环境下运行状态.我的实验效果,没有到1W,还在优化中… 环境: 有3台虚拟机,运行Hadoop集群:3台虚拟机也在跑HBase:master,node1,node2 master上,同时安装了Mysql数据库. 目前有这…
多参数查询,使用parameterType.实例: 用户User[id, name, age] 1.mysql建表并插入数据 2.Java实体类 public class User { public User() { } public User(int id, String name, int age) { super(); this.id = id; this.name = name; this.age = age; } private int id; private String name;…
SQLServer中查询的数字列前面补0返回指定长度的字符串: 如: 角本如下: /****** Script for SelectTopNRows command from SSMS ******/ SELECT TOP [ID] ,[SN] ,[Name] FROM [EduDB].[dbo].[TestTab] ',SN) from TestTab; )+CAST(SN AS varchar()),) AS 'SN' from TestTab; )),) as 'sn' from Test…
11.1     需求 查询订单及订单明细的信息. 11.2     sql语句 确定主查询表:订单表 确定关联查询表:订单明细表 在一对一查询基础上添加订单明细表关联即可. SELECT orders.*, USER.username, USER.sex, USER.address, orderdetail.id orderdetail_id, orderdetail.items_id, orderdetail.items_num, orderdetail.orders_id FROM ord…