非原创,看到以后发现自己在很多时候都忽略了这个问题一些基本的SQL优化
摘要:1、子查询的用法子查询是一个 select 查询,它嵌套在 SELECT、INSERT、UPDATE、DELETE 语句或其它子查询中。任何允许使用表达式的地方都可以使用子查询。子查询可以使我们的编程灵活多样,可以用来实现一些特殊的功能。但是在性能上,往往一个不合适的子查询用法会形成一个性能瓶颈。A、NOT IN、NOT EXISTS的相关子查询可以改用LEFT JOIN代替写法。比如:select pub_namefrom publisherswhere pub_id not in(select pub_idfrom titleswhere type = 'business'
阅读全文
posted @
2012-08-16 10:55
叮叮猫的编程世界
阅读(184)
推荐(1)
公布一个以前写的随机数生成的方法
摘要:--随机数生成有一个麻烦的地方就是 随机数不能在自定义方法里面使用。所以只能放到一个视图里面去。create view view_rand as select rand() as Srand ;
create function GenerateOrderID() returns varchar(50) as
begin declare @OrderID varchar(50) declare @Mrand int select @Mrand=cast(Srand*10000 as int) from view_rand declare @...
阅读全文
posted @
2012-08-03 17:38
叮叮猫的编程世界
阅读(299)
推荐(0)
关于Sqlserver窗口函数over的用法
摘要:个人觉得,sqlserver在2005以后推出窗口函数 Over完全是一个创举,他让很多的复杂的问题变得简单了。既然是用法,我就不说明其他的东西,举一些例子就好了:create table OverTableTest
( id int identity(1,1),--ID Val int, --值 typ int, --类型
)
go
declare @cou int
set @cou=1
while @cou<50
begin insert into OverTableTest select @cou,@cou%5+1 set @cou=@cou+1
end
go s...
阅读全文
posted @
2012-06-25 14:47
叮叮猫的编程世界
阅读(668)
推荐(0)
代码列表 4.5:显示累计最消耗 CPU 时间的前50个运行计划
摘要:SELECT TOP 50 total_worker_time/1000 AS [总消耗CPU 时间(ms)],execution_count [运行次数], qs.total_worker_time/qs.execution_count/1000. as [平均消耗CPU 时间(ms)], SUBSTRING(qt.text,qs.statement_start_offset/2+1, (case when qs.statement_end_offset = -1 then DATALENGTH(qt.text) else qs.statement_end_offse...
阅读全文
posted @
2012-06-25 09:46
叮叮猫的编程世界
阅读(231)
推荐(0)
统计各连接对 tempdb 系统数据库的占用量
摘要:SELECT t1.session_id,
(t1.internal_objects_alloc_page_count + t1.user_objects_alloc_page_count + task_alloc) as [保留或配置的总数据页数],
(t1.internal_objects_dealloc_page_count + t1.user_objects_dealloc_page_count + task_dealloc) as [取消配置的总数据页数] from sys.dm_db_session_space_usage as t1, (select session_id,...
阅读全文
posted @
2012-06-25 01:45
叮叮猫的编程世界
阅读(313)
推荐(0)
关于Sqlserver的换行和空格
摘要:最近一直纠结于Sqlserver的换行和回车的处理,想了很多办法都不行。最后没有办法,百度了下:网上解答的原话: 中英文空格的ASCII值为32,而对于控制字符,制表符、换行符和回车符分别是是char(9)、char(10)和char(13)。于是selectREPLACE(replace(value,CHAR(32),''),CHAR(13)+CHAR(10),'')
阅读全文
posted @
2012-06-12 11:46
叮叮猫的编程世界
阅读(931)
推荐(0)
sqlserver 东八时区的英文时间转换
摘要:今天新浪微博的东东,发现其CreateAt创建时间居然为 英文的时间,并且里面包含有英文。纠结了。时间格式如下:Wed May 23 16:04:54 +0800 2012Wed May 23 16:04:33 +0800 2012Wed May 23 16:03:18 +0800 2012Wed May 23 16:01:47 +0800 2012Wed May 23 16:01:17 +0800 2012Wed May 23 16:01:00 +0800 2012Wed May 23 15:57:34 +0800 2012Wed May 23 15:55:55 +0800 2012Wed
阅读全文
posted @
2012-05-29 14:47
叮叮猫的编程世界
阅读(1010)
推荐(0)
sqlserver时间函数
摘要:SqlServer中的日期与时间函数1.当前系统日期、时间selectgetdate()2.dateadd在向指定日期加上一段时间的基础上,返回新的datetime值例如:向日期加上2天selectdateadd(day,2,'2004-10-15')--返回:2004-10-1700:00:00.0003.datediff返回跨两个指定日期的日期和时间边界数。selectdatediff(day,'2004-09-01','2004-09-18')--返回:174.datepart返回代表指定日期的指定日期部分的整数。SELECTDATEPAR
阅读全文
posted @
2012-05-16 09:56
叮叮猫的编程世界
阅读(302)
推荐(0)
SQL2005CTE做无标识重复记录删除,让你的sql看起来更简单
摘要:有些表设计没有标识,没有主键,删除起来一直是个麻烦的事情,而CTE的运用却让这件事情变得简单。create table CreDelete ( id int identity(1,1), name varchar(10)
)
go
insert into CreDelete select '张三' as name
union all select '王2'
union all select '张三'
union all select '王2'
union all select '张1'
union all sele
阅读全文
posted @
2012-03-30 15:58
叮叮猫的编程世界
阅读(191)
推荐(0)
判断临时表是否存在(临时表的删除)
摘要:以下是在网上搜索的一个说明:临时表有两种类型:本地和全局。它们在名称、可见性以及可用性上有区别。本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 SQL Server 实例断开连接时被删除。全局临时表的名称以两个数字符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。我写这篇文章的主要目的是,如果判断这个临时表是否存在。方式一:IF EXISTS (SELECT * FROM sysobjects WHERE object_id = OBJECT_ID(N'[dbo].[#tempTab
阅读全文
posted @
2012-03-28 11:00
叮叮猫的编程世界
阅读(285)
推荐(0)
关于位数补0的简单方法
摘要:最近遇到好几个人都在问:周,我的数字位数是未知的,我想把它变成固定的位数,应该怎么弄啊。........其实很简答的,一个right就可以了呀。select right('000'+cast(1 as varchar(3)),3)还是用得少了,现在写个地方,希望筒子们以后方便用到。
阅读全文
posted @
2012-03-13 15:58
叮叮猫的编程世界
阅读(242)
推荐(0)
分析Sqlserver与access数据库sql语法的10大差异
摘要:做项目时,最常用的数据库即Sqlserver与Access数据库莫属了!但使用会经常发现很多SQL执行的问题。这里整理出之间的差异,做个十大差异的总结。 ACCESS结构简单容易处理,而且也能满足多数的网站程序要求,也是初学者的试牛刀。ACCESS是小型数据库,既然是小型就有他根本的局限性: 1)、数据库过大,一般ACCESS数据库达到50M左右的时候性能会急剧下降! 2)、网站访问频繁,经常超过100人的在线时,处理速度会有影响! 3)、记录数过多,一般记录数达到10万条左右的时候性能就会急剧下降! 微软公司为了与ACCESS高低搭配的一种高端方案:改用了Sqlserver,但语法会有一些差
阅读全文
posted @
2012-03-01 08:57
叮叮猫的编程世界
阅读(361)
推荐(0)
SQL注射技术总结文档
摘要:写在前面: 最近看了不少老外写的东西,看时间相同的技术当铺比我们早了好长一段时间,比如ASP的SQL注射国外02年就出现了,PHP的也在04年出现,而我们一直到05年才接触到,看看比人家晚了多少时间呀!为了尽快了解最新的技术动态,我坚持看E文资料,有的很长,有的很短,本人时间有限,不可能一一翻译过来,只能挑选自己认为比较适合大家看的东西翻译过来,希望你能从中学到东西。 PS:本人英语水平有限,很多都是按照我的理解做的模糊翻译,若有不当,敬请指正,谢谢! ====||目录||=====--------------------1、简介2、漏洞测试3、收集信息4、数据类型5、抓取密码6、创建数据库.
阅读全文
posted @
2012-02-23 10:29
叮叮猫的编程世界
阅读(155)
推荐(0)
18个小实例入门SQLServer XML查询
摘要:/*sql xml 入门: --by Erichu --http://blog.csdn.net/chinahuyong 1、xml: 能认识元素、属性和值 2、xpath: 寻址语言,类似windows目录的查找(没用过dir命令的话就去面壁) 语法格式,这些语法可以组合为条件: "."表示自己,".."表示父亲,"/"表示儿子,"//"表示后代, "name"表示按名字查找,"@name"表示按属性查找 ...
阅读全文
posted @
2012-02-23 10:26
叮叮猫的编程世界
阅读(244)
推荐(0)
得到一个给定用户使用了的权限脚本
摘要:[推荐]得到一个给定用户使用了的权限脚本——通过知识共享树立个人品牌。得到一个给定用户使用了的权限脚本,直接上代码,自己研究。 SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATEPROCEDURE[dbo].[p_user_permissions_script_get]-------------------------------------------------------------OBJECTNAME:dbo.p_user_permissions_script_get--AUTHOR:EricHu--DATE:01/05/2012--INP.
阅读全文
posted @
2012-02-23 10:24
叮叮猫的编程世界
阅读(272)
推荐(0)
(SqlServer)批量清理指定数据库中所有数据
摘要:[推荐](SqlServer)批量清理指定数据库中所有数据——通过知识共享树立个人品牌。在实际应用中,当我们准备把一个项目移交至客户手中使用时,我们需要把库中所有表先前的测试数据清空,以给客户一个干净的数据库,如果涉及的表很多,要一一的清空,不仅花费时间,还容易出错以及漏删,在这儿我提供了一个方法,可快捷有效的清空指定数据库所有表的数据。仅供参考,欢迎交流不同意见。--RemovealldatafromadatabaseSETNOCOUNTON--TablestoignoreDECLARE@IgnoreTablesTABLE(TableNamevarchar(512))INSERTINTO@I
阅读全文
posted @
2012-02-23 10:23
叮叮猫的编程世界
阅读(342)
推荐(0)
(SqlServer)分离所有用户数据库
摘要:[推荐](SqlServer)分离所有用户数据库——通过知识共享树立个人品牌。在实际应用中,有时我们需要一次性分离所有用户数据库,下面给出代码,供大家参考。USE[master]GOIFEXISTS(SELECT*FROMsys.objectsWHERE[object_id]=OBJECT_ID(N'[dbo].[spDetachAllUserDatabases]')ANDtypeIN(N'P',N'PC'))DROPPROCEDURE[dbo].[spDetachAllUserDatabases]GOCREATEPROCEDURE[dbo].[
阅读全文
posted @
2012-02-23 10:23
叮叮猫的编程世界
阅读(297)
推荐(0)
(SqlServer)不公开存储过程sp_Msforeachtable与sp_Msforeachdb详解
摘要:【推荐】(SqlServer)不公开存储过程sp_Msforeachtable与sp_Msforeachdb详解——通过知识共享树立个人品牌。一.简要介绍:系统存储过程sp_MSforeachtable和sp_MSforeachdb,是微软提供的两个不公开的存储过程。从mssql6.5开始,存放在SQL Server的MASTER数据库中。可以用来对某个数据库的所有表或某个SQL服务器上的所有数据库进行管理,下面将对此进行详细介绍。作为数据库管理者或开发者等经常会检查整个数据库或用户表。如:检查整个数据库的容量,看指定数据库所有用户表的容量,所有表的记录数等等,我们一般处理这样的问题都是通过游
阅读全文
posted @
2012-02-23 10:22
叮叮猫的编程世界
阅读(328)
推荐(0)
必须声明标量变量 "@tempTable"
摘要:MLGB微软的sqlserver有一个BUG,在使用表变量进行修改时,他会提醒你:必须声明标量变量 "@tempTable"。首先/*create table test( id int identity(1,1), name varchar(10))insert into test select '222'union select '444'union select '455'*/godeclare @mytabe table( id int, name varchar(10))insert into @mytabe sele
阅读全文
posted @
2012-02-09 16:01
叮叮猫的编程世界
阅读(787)
推荐(0)
DBCC DBREINDEX重建索引提高SQL Server性能
摘要:DBCC DBREINDEX重建索引提高SQL Server性能大多数SQL Server表需要索引来提高数据的访问速度,如果没有索引,SQL Server 要进行表格扫描读取表中的每一个记录才能找到索要的数据。索引可以分为簇索引和非簇索引,簇索引通过重排表中的数据来提高数据的访问速度,而非簇索引则通过维护表中的数据指针来提高数据的索引。1.索引的体系结构为什么要不断的维护表的索引?首先,简单介绍一下索引的体系结构。SQL Server在硬盘中用8KB页面在数据库文件内存放数据。缺省情况下这些页面及其包含的数据是无组织的。为了使混乱变为有序,就要生成索引。生成索引后,就有了索引页和数据页,数据
阅读全文
posted @
2012-02-07 15:13
叮叮猫的编程世界
阅读(225)
推荐(0)