- 博客(276)
- 收藏
- 关注
原创 一个容易被忽略的SQL调优技巧 --- order by字段到底要不要加入索引
REFS:http://www.talkwithtrend.com/Article/178469 http://www.itpub.net/forum.php?mod=viewthread&tid=2056849&extra=&highlight=&page=1 https://www.cnblogs.com/zhaoyl/archive...
2018-10-15 17:42:44 3786 1
原创 组合索引的优势
11 那么,如果在firstname、lastname、age这三个列上分别创建单列索引,效果是否和创建一个firstname、lastname、age的多列索引一样呢? 答案是否定的,两者完全不同。当我们执行查询的时候,MySQL只能使用一个索引。如果你有三个单列的索引,MySQL会试图选择一个限制最严格的索引。但是,即使是限制最严格的单列索引,它的限制能力也肯定远远低于firstn...
2018-10-15 17:09:38 1726 1
原创 oracle函数索引解决null字段导致索引失效问题
11 我们知道索引列如果出现null值会导致索引失效。具体情况如下: 表中数据如下: 可见storeid列有null值。 当执行查询语句:select * from demo where storeid= '10';时我们通过plsql的sql分析(F5触发)可以看到触发全表查询。 那该如何让该在字段有空值的情况下触发索引呢? 有两种方法: ...
2018-10-15 16:41:50 1547
原创 回表 table access by index rowid
111回表:在数据中,当查询数据的时候,在索引中查找索引后,获得该行的rowid,根据rowid再查询表中数据,就是回表。 --创建一个表, 索引只建立在object_id上 SQL> create table ml_1 as 2 select * from dba_objects 3 ; Table created SQL&...
2018-10-15 16:32:34 446
原创 查看占用CPU资源很高的Oracle进程究竟是在做什么操作,使用如下SQL语句
select sql_text,spid,v$session.program,process fromv$sqlarea,v$session,v$processwhere v$sqlarea.address=v$session.sql_addressand v$sqlarea.hash_value=v$session.sql_hash_value...
2018-10-11 15:24:28 790
原创 left join 终极理解
left join 就是关联,右表多出来不相干 关联不上不要,右边少了以空代替,保证左表全出来,如果右边重复记录,则左表关联上部分也重复。总结就是,左表只会多(重复、因右表重复)不会少,右表关联不上则为空。 1 1 12 2a.id=b.id 左边和右边两个都等,左边就会重复一条记录出来 ...
2018-09-06 08:37:34 1394
原创 log4j配置详解(非常详细)
https://www.cnblogs.com/gaishishengzhu/articles/1735441.html
2018-09-05 15:59:17 134
原创 sql写多了,都怀疑了
left join 也是关联,只是会有空,只要关联了就是一条记录,当然可以过滤,可以查、可以过滤。 or 关联后,就形成临时表,对此临时表进行过滤。没毛病 ...
2018-08-28 14:13:47 157
原创 @@IDENTITY 的缺点 SCOPE_IDENTITY() 取而代之
也许大家对SQL Server中的 @@IDENTITY 都不陌生,都知道它是获取数据表中最后一条插入数据的IDENTITY值。 比如,表 A 中有个 ID 为自增1的字段,假设此时 ID 的值为100,现在如果我往表A插入一条数据,并在插入后 SELECT @@IDENTITY,则其返回 101,最后一条IDENTITY域(即ID域)的值。 现在问题来了,为什么说要慎用@@IDENTITY...
2018-06-14 10:08:28 564
原创 left join (on 和 where条件放置的区别) !!!!
数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。 在使用left jion时,on和where条件的区别如下:1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边...
2018-04-10 11:54:17 116
原创 (精)用表连接取代not in查询
用表连接取代not in查询写了好几个页面,速度都上不去,瓶颈在于SQL查询。太多的表,太多的not in,总是从一大推表和数据中筛选出一点数据。看了很多关于SQL优化的文章,都强烈要求不要太多使用not in查询,最好用表连接来取代它。如:select ID,name from Table_A where ID not in (select ID from Table_B)呵呵,这句是最经...
2018-02-09 10:57:18 160
原创 Oracle使用强制索引注意事项
强制索引语法:SELECT /*+ index(table IndexName)*/ 如果查询语句中,表用到别名时,上边语句中的table一定要是别名,否则不走执行强制索引。 REFS:http://blog.csdn.net/gjf281/article/details/54671638 ...
2018-02-01 11:42:56 440
原创 (精!)oracle学习笔记
http://blog.csdn.net/xinzhan0/article/category/6205169/2 写道oracle学习笔记
2018-02-01 11:33:01 95
原创 (好!)哈希表算法通俗理解和实现
顺序查表法假设现在有1000个人的档案资料需要存放进档案柜子里。要求是能够快速查询到某人档案是否已经存档,如果已经存档则能快速调出档案。如果是你,你会怎么做?最普通的做法就是把每个人的档案依次放到柜子里,然后柜子外面贴上人名,需要查询某个人的档案的时候就根据这个人的姓名来确定是否已经存档。但是1000个人最坏的情况下我们查找一个人的姓名就要对比1000次!并且人越多,最大查询的次数也就越多,...
2018-01-25 14:17:52 591
原创 Http Header里的Content-Type
REFS:https://www.cnblogs.com/52fhy/p/5436673.html http://blog.csdn.net/blueheart20/article/details/45174399
2018-01-25 13:47:10 120
原创 http、soap和rest的比较
由于被问到rest和http区别,rest是协议吗?懵逼了。。。花了一部分时间学习了下,记录下来,以供不时之需,有理解不到位的望留言告知,再此,多谢。。。。废话不多说正文开始。。。 http是标准超文本传输协议。使用对参数进行编码并将参数作为键值对传递,还使用关联的请求语义。每个协议都包含一系列HTTP请求标头及其他一些信息,定义客户端向服务器请求哪些内容,服务器用一系...
2018-01-25 11:02:54 324
原创 有关Oracle统计信息的知识点
https://www.cnblogs.com/sunmengbbm/p/5775211.html 写道有关Oracle统计信息的知识点
2018-01-25 10:52:14 103
原创 B树和hash
写道关系型数据库的索引大多采用B/B+树来作为存储结构,而全文检索的搜索引擎则主要采用Hash来作为索引的存储结构,这两类系统的算法都比较成熟了,为什么它们要在各自的应用环境下采用这两种数据结构来存储索引。我个人的理解是:数据库系统库表比较多,讲究的是灵活,尤其是在空间上的flexible很重要,而B/B+树在扩展上具有较好的空间优势(当表中数据行比较少的时候,其索引也比较小,比较灵活且节省...
2018-01-19 17:17:41 122
原创 各种树
http://blog.csdn.net/qq_17612199/article/details/50944413 写道B树、B-树、B+树与红黑树 http://blog.csdn.net/yang_yulei/article/details/26066409 写道查找(一)史上最简单清晰的红黑树讲解 ...
2018-01-18 16:30:50 87
原创 Hints
http://czmmiao.iteye.com/blog/1478465https://www.2cto.com/database/201307/226536.htmlhttp://blog.csdn.net/stevendbaguo/article/details/54911680https://www.cnblogs.com/huaxingtianxia/...
2018-01-18 11:07:19 144
SQL/ORA/MYSQL 大对比
(ORACLE适用) DELETE FROM TABLEA A WHERE A.FIELD1=10(SQLSERVER/MYSQL适用) DELETE TABLEA FROM TABLEA A WHERE A.FIELD1=10 (Ora/SQL均适用) DELETE FROM TABLEA WHERE TABLEA.FIELD1=10 ...
2018-01-18 10:31:05 118
原创 子查询
之所以会卡是因为子查询的操作会铁定会创建临时表,当然创建内存临时表并不可怕但是当你数据量大了以后,内存临时表的单表大小限制后,临时表会转换为写磁盘形式的物理内存表这两个参数决定了你临时表的大小tmp_table_size max_heap_table_size你可以查看这两个状态状态的变化,看你数据库性语句是否有问题。Created_tmp_disk_tables/Created_tmp_t...
2018-01-18 10:28:58 84
原创 (转)SQL SERVER 中的 object_id()函数
https://www.cnblogs.com/nimorl/p/4867422.html
2017-12-26 12:54:50 117
一次sql 调优心得
/* TRUNCATE TABLE dbo.temp_new_skc; insert into dbo.temp_new_skc select A.SkuCode,a.Quantity, a.C_date from OmsSale a WHERE CONVERT(varchar(100), C_date, 23) >= dateadd(YY,1,@B_...
2017-12-26 11:43:18 139
原创 sql where group 注意点
select 列a,聚合函数 from 表名 where 过滤条件 group by 列a having 过滤条件group by 字句也和where条件语句结合在一起使用。当结合在一起时,where在前,group by 在后。即先对select xx from xx的记录集合用where进行筛选,然后再使用group by 对筛选后的结果进行分组 使用having字句对分组后的结果进行筛...
2017-11-09 14:56:07 170
sql疑问记录
1、查询最大begindate的记录(一个clerkcode有多个begindate值的记录) ,相关子查询?in?: select * from hi_psnjob a where a.begindate in ( select max(b.begindate) from hi_psnjob b where b.clerkcode = a.clerkcode) ...
2017-10-31 14:05:18 79
原创 (转) 索引
复合索引的优点和注意事项 概念: 单一索引是指索引列为一列的情况,即新建索引的语句只实施在一列上; 用户可以在多个列上建立索引,这种索引叫做复合索引(组合索引); 复合索引在数据库操作期间所需的开销更小,可以代替多个单一索引; 同时有两个概念叫做窄索引和宽索引,窄索引是指索引列为1-2列的索引,宽索引也就是索引列超过2列的索引; ...
2017-09-20 14:35:16 110
原创 多个left join 执行流程
select a.cName from table1 a LEFT JOIN table2 b ON a.code=b.code LEFT JOIN table3 c ON a.code=c.code过程是这样的:1, 首先table1左链接table2,得到一个中间结果,该中间结果包括table1的所有行以及table2中与table1匹配条件(a.code=b.code)的行2, 该中间结...
2017-06-23 09:08:58 2683
某一类日期范围内每7天一组的销量之和,以及行转列
set @sqlstr = ' select MIDDLECLASS, groupid, sum(Quantity) period_sum ,min(C_date) period_min_date,max(C_date) period_max_date from( SELECT A.SkuCode,a.Quantity, a.C_date, datediff(day,...
2017-06-15 09:59:31 410
子查询 和 连接查询谁快
子查询 和 连接查询 可以达到同样的效果 即 相同的结果集,但是谁快谁慢?一般连接查询如果后期添加条件 需要改原来SQL,为了不改原来SQL,我一般会用子查询来做,这样意思比较明确且不动原来sql,但是心里有个疑惑,这样会不会影响性能,经过一番搜索,感觉应该性能应该差不多。 看这个帖子的讨论http://bbs.csdn.net/topics/310125796 写道子查询稍微快...
2017-06-08 09:18:52 1462
原创 (转)oracle获取字符串长度函数length()和hengthb()
lengthb(string)计算string所占的字节长度:返回字符串的长度,单位是字节length(string)计算string所占的字符长度:返回字符串的长度,单位是字符 对于单字节字符,LENGTHB和LENGTH是一样的.如可以用length(‘string’)=lengthb(‘string’)判断字符串是否含有中文。 注:一个汉字在Oracle数据...
2017-06-08 09:08:44 156
原创 (转)SqlServer 排名函数(row_number、rank、dense_rank)的比较
[sql] view plain copy print?排名函数是SQL Server2005新加的功能。在SQL Server2005中有如下四个排名函数: 1. row_number 2. rank 3. dense_rank 4. ntile 下面分别介绍一下这四个排名函数的功能及用法。在介绍之前假设有一个t...
2017-06-08 09:02:28 120
智能补货随想(定时比较当前库存和标准库存、若小则补之)
先 is null 获得集合肯定有最大值。先获得最大最 再看它是不是is null ,这样就不一定有结果 没有结果就不导,因为is not null 导过了。 最新纪录有则更新到订单,不管它是与原来一样老数据 还是不一样的新数据(反正need_num是变大的,不影响数据准确性)。只能这么做,没法确认是新数据还是老数据,(最新的老数据导了新增就是重复、最新的新数据 导了新增就是重合之前...
2017-05-26 19:30:26 944
智能补货 (在途、现有库存、安全库存) 的思路
按我的那个,在途库存就查我新建的表need_num字段。按他那个,多个调度单里的在途库存加起来(可以查在途SQL里根据门店、SKU分组,求出在途的和)作为一个整体在途,加现有的库存若小于安全则插入我的表里表示调货单,否则不插。我的那个只做插入用。一开始现有库存+在途(0)小于安全、插入我的、参考我的做在途。下一次、现有的+在途(可能多个和)不小于安全,则不插我的。在途到货,现有的变...
2017-05-06 20:39:43 4041
更新的想法
全部更新的话,可以query-copy-delete-insert(查询DB记录,将新的非null{保持有DB的隐藏字段值}拷贝过来,删除DB的,insert合并后的记录--如果主键是数据库自动生成的会冲突,因为待插的记录里有主键)。 若hibernate,query-copy-update,ID存在则全部更新、优化的话则更新修改的字段set field1=newValue…...
2017-04-25 17:58:15 103
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人