-
SqlServer中模糊查询对于特殊字符的处理方法
今天在处理sql查询的时候遇到了like查询不到的问题,于是对问题进行剖析问题:select*fromv_workflow_rt_task_circulatewhereNamelike'%[admin]请假申请[2017-02-13至2017-02-13]%'查询不到,但是在数据库中是存在在这一条数据的。修改后:select*fromv_workflow_rt_task_circulatewhereNamelike'%[[]admin]请假申请[[]2017-02-13至2017-02-13]%'对于模糊查询需要对于特殊字符的处理(下划线_,百分号%,方括号[,尖号^)对了以上的字符直接使用方括号包起来([])例如:[_]、[%]、[[]、[^]...
数据库操作教程 2022-09-23 18:14:14 -
数据库SQL语句优化总结(收藏)
网上关于SQL优化的教程很多,但是比较杂乱。近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充...
数据库操作教程 2022-09-23 18:14:05 -
SQLServer误设置maxservermemory的处理方法
昨天网上一网友说,由于他同事误将“maxservermemory”设置为10M后,SQLServer数据库登录不了,当时我简单测试了一下,今天有空就顺手将整个过程整理一下,记录在此。在SSMS的UI界面设置“maxservermemory”,即使你设置为10M大小,但是它会“悄悄”默认修改为128M,你用Profile跟踪或者设置后会发现,它偷偷“修改”了你的设置值(改为了128M),EXECsys.sp_configureN'maxservermemory(MB)',N'128'GORECONFIGUREWITHOVERRIDEGOConfigurationoption'maxservermemory(MB)'changedfrom4096to128.RuntheRECONFIGUREstatementtoinstall.如果你没有注意这些细节,或者不信这个事情,那么也可以用脚本测试一下,如下所示,它提示你这个值(10M)不是一个有效值...
数据库操作教程 2022-09-23 18:14:01 -
SQLServer并行操作优化避免并行操作被抑制而影响SQL的执行效率
为什么我也要说SQLServer的并行:这几天园子里写关于SQLServer并行的文章很多,不管怎么样,都让人对并行操作有了更深刻的认识。我想说的是:尽管并行操作可能(并不是一定)存在这样或者那样的问题,但是我们不能否认并行,仍然要利用好并行...
数据库操作教程 2022-09-23 18:11:12 -
SQLServer并发处理存在就更新解决方案探讨
前言本节我们来讲讲并发中最常见的情况存在即更新,在并发中若未存在行记录则插入,此时未处理好极容易出现插入重复键情况,本文我们来介绍对并发中存在就更新行记录的七种方案并且我们来综合分析最合适的解决方案。探讨存在就更新七种方案首先我们来创建测试表IFOBJECT_ID('Test')ISNOTNULLDROPTABLETestCREATETABLETest(Idint,Namenchar(100),[Counter]int,primarykey(Id),unique(Name));GO解决方案一(开启事务)我们统一创建存储过程通过来SQLQueryStress来测试并发情况,我们来看第一种情况...
数据库操作教程 2022-09-23 18:10:19 -
SQLServer地址搜索性能优化
这是一个很久以前的例子,现在在整理资料时无意发现,就拿出来再改写分享。1.需求 1.1基本需求:根据输入的地址关键字,搜索出完整的地址路径,耗时要控制在几十毫秒内...
数据库操作教程 2022-09-23 18:07:01 -
Mysql用户忘记密码及密码过期问题的处理方法
忘记密码:步骤一:现在找到MySQL的安装目录,改掉安装目录的my-default.ini名称为my.ini(D:Mysqlmysql-5.7.13-winx64);步骤二:在my.ini文件最后一行加上skip-grant-tables 并保存(这是去掉安全检查);步骤三:在服务中重启MySQL服务;步骤四:cmd命令进入Mysql安装bin目录下输入mysql-uroot-p,按回车;(这里是以账号root为例子)步骤五:会出现‘Enterpassword',再按下回车,此时进入mysql>;步骤六:输入命令‘usemysql'回车,再输入修改密码sql语句:updateusersetpassword=password("new_pass")whereuser="root";然后将my.ini文件中的skip-grant-tables去掉,然后重启mysql,就OK了。注意:如果是MySQL5.7.13版本,会报ERROR1054(42S22):Unknowncolumn‘password'in‘fieldlist'这样的error;这样我们将sql语句改为:upd...
数据库操作教程 2022-09-23 18:06:51 -
SQLServer中的SQL语句优化与效率问题
很多人不知道SQL语句在SQLSERVER中是如何执行的,他们担心自己所写的SQL语句会被SQLSERVER误解。比如:select*fromtable1wherename='zhangsan'andtID>10000和执行:select*fromtable1wheretID>10000andname='zhangsan'一些人不知道以上两条语句的执行效率是否一样,因为如果简单的从语句先后上看,这两个语句的确是不一样,如果tID是一个聚合索引,那么后一句仅仅从表的10000条以后的记录中查找就行了;而前一句则要先从全表中查找看有几个name='zhangsan'的,而后再根据限制条件条件tID>10000来提出查询结果...
数据库操作教程 2022-09-23 18:02:04 -
简析SQLServer数据库用视图来处理复杂的数据查询关系
SQLServer数据库用视图来处理复杂的数据查询关系是本文我们主要要介绍的内容,该内容是这样想到的:在辅助教务系统那块的时候,我做的一个页面是对单个老师和整个学院老师的工作量查询,这个操作设计到了三个本数据库中的表和一个不同数据库中的一个教师信息表,如果用普通的SQL语句是非常难实现的,由于我刚开始做的视频播放系统,数据库的表相对比较少,没有涉及到这么复杂的处理关系,刚开始感觉很难。后来想到用视图可以解决多个表的复杂关系,但是另外一张表是不同数据库的,是否依然能进行操作,经过测试之后,居然可以将不同数据库中的两张表进行建立视图关系,从而视图就是一个虚拟的表,我们将需要查询的不同数据库中的表或者相同数据库中的表,放到一起,然后选择需要的字段,重新建立一个新的虚表,然后这个视图就可以作为一个新的表,进行操作...
数据库操作教程 2022-09-23 17:59:56 -
MSSQLServer2014链接到MSSQLServer2000的解决方案及问题处理
开发与企业应用中,好几个版本SQLServer相互链接。分布式读取与存储,需要实现sp_addlinkedserver...
数据库操作教程 2022-09-23 17:58:56 -
sqlserver日志处理不当造成的隐患详解
事故背景:一大早还在路上,群里陆续有人反馈系统一直报错“Unknownerror258”,后来查询日志发现错误日志第一反应是不是数据库连接不够用了?导致超时?但是通过sql查询当时连接也只有40个左右,于是继续排查问题,发现dbserver机器这段时间磁盘io操作特别的高,很不正常,详见下图发现磁盘io问题,继续查看sqlserver日志,发现原因:“Autogrowoffile‘xxxx_log'indatabase‘xxxx'wascancelledbyuserortimedoutafter3398milliseconds. UseALTERDATABASEtosetasmallerFILEGROWTHvalueforthisfileortoexplicitlysetanewfilesize.”发现这种问题因为log日志文件太大了一直没有压缩过,并且创建数据库的时候默认选择了10%的增量来扩大log增量文件,这样日志文件的10%会越来越大从而产生超时高io操作解决方案:1、定期清理log文件,防止log文件越来越大USE[master]GOALTERDATABASE数据库...
数据库操作教程 2022-09-23 17:58:05