![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SQLServer调忧
文章平均质量分 71
智星
金巢化工交易网(即GNCTS):研发中心负责人
新浪微博:http://weibo.com/simei527
展开
-
sql语句技巧(转)
1、应用程序中,保证在实现功能的基础上,尽量减少对数据库的访问次数;通过搜索参数,尽量减少对表的访问行数,最小化结果集,从而减轻网络负担;能够分开的操作尽量分开处理,提高每次的响应速度;在数据窗口使用SQL时,尽量把使用的索引放在选择的首列;算法的结构尽量简单;在查询时,不要过多地使用通配符如SELECT * FROM T1语句,要用到几列就选择几列如:SELECT COL1,CO转载 2011-11-09 17:51:15 · 499 阅读 · 0 评论 -
合并列值整理
<br />合并列值整理 收藏 <br /><br />数据:<br />id col<br />----- ------<br />1 a<br />1 b<br />2 a<br />2 b<br />2 c<br /> <br />期望得到结果:<br />id col<br />------ -----------<br />1 a,b<br />2 a,b,c<br /> <br />--------------------转载 2010-08-14 16:07:00 · 359 阅读 · 0 评论 -
什么时候需要用到字符串变量
<br /><br />1 :普通SQL语句可以用Exec执行 <br />Select * from tableName <br />Exec('select * from tableName') <br />Exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N <br />2:字段名,表名,数据库名之类作为变量时,必须用动态SQL <br />declare @fname varchar(20) <br />set @fname =转载 2010-08-14 16:04:00 · 405 阅读 · 0 评论 -
分类汇总compute,compute by,with rollup,with cube使用示例
<br />if object_id('[tb]') is not null drop table [tb]<br />go<br />create table [tb]([部门] varchar(7),[电话] varchar(20),[金额] int)<br />insert [tb]<br />select '营业部',8001,20 union all<br />select '营业部',8002,30 union all<br />select '财务部',6001,10 union all<br转载 2010-08-14 14:41:00 · 362 阅读 · 0 评论 -
SQL SERVER性能优化综述
<br />SQL SERVER性能优化综述<br />--原著:Haiwer<br /> <br />近期因工作需要,希望比较全面的总结下SQL SERVER数据库性能优化相关的注意事项,在网上搜索了一下,发现很多文章,有的都列出了上百条,但是仔细看发现,有很多似是而非或者过时(可能对SQL SERVER6.5以前的版本或者ORACLE是适用的)的信息,只好自己根据以前的经验和测试结果进行总结了。<br />我始终认为,一个系统的性能的提高,不单单是试运行或者维护阶段的性能调优的任务,也不单单是开发阶段的转载 2010-08-14 14:23:00 · 383 阅读 · 0 评论 -
查每个分组前N条记录
<br />---------------------------------<br />-- Author: liangCK 小梁<br />-- Title : 查每个分组前N条记录<br />-- Date : 2008-11-13 17:19:23<br />---------------------------------<br />--> 生成测试数据: #T<br />IF OBJECT_ID('tempdb.dbo.#T') IS NOT NULL DROP TABLE #T<br转载 2010-08-14 15:41:00 · 495 阅读 · 0 评论 -
数据层级显示(根据代码级次显示名称)
<br /><br />问题贴:http://topic.csdn.net/u/20100428/14/51caf51d-bfc7-4832-9783-2805e13085e5.html?11679<br /><br />--------------------------------------------------------------------------<br />-- Author : htl258(Tony)<br />-- Date : 2010-04-28 14:48:10<b转载 2010-08-14 12:01:00 · 639 阅读 · 0 评论 -
SQL 结果集分列显示实例
<br /><br />----------------------------------------------------------------------------------<br />-- Author : htl258(Tony)<br />-- Date : 2010-07-06 21:13:04<br />-- Version: Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) <br />--转载 2010-08-14 11:53:00 · 822 阅读 · 0 评论 -
CLUSTERED | NONCLUSTERED
<br /><br />--联机文档<br /> CLUSTERED | NONCLUSTERED<br /> 指定为 PRIMARY KEY 或 UNIQUE 约束创建聚集或非聚集索引。PRIMARY KEY 约束默认为 CLUSTERED;UNIQUE 约束默认为 NONCLUSTERED。<br /><br /> 如果表中已存在聚集约束或索引,那么在 ALTER TABLE 中就不能指定 CLUSTERED。如果表中已存在聚集约束或索引,PRIMARY KEY 约束默认为 NONCL转载 2010-08-14 10:20:00 · 409 阅读 · 0 评论 -
索引在哪些情况下失效
<br /><br />索引在哪些情况下失效<br />1.只要对列使用函数,该列的索引将不起作用,如:substring(aa,1,2)='xx' <br />2.只要对列进行计算,该列的索引将不起作用,如:aa+10=20 <br />3.某些情况下的LIKE操作,该列的索引将不起作用,如:aa LIKE '%10%' <br />4.某些情况使用反向操作,该列的索引将不起作用,如:aa <>2 <br />5.在WHERE中使用OR时,有一个列没有索引,那么其它列的索引将不起作用转载 2010-08-12 21:14:00 · 332 阅读 · 0 评论 -
有几个关于分区的问题
<br /><br />有几个关于分区的问题,希望大家帮忙了 <br />1. 表已经存在,能否再应运分区方案呢,如果可以,这么用? <br />2. sqlserver里能否直接通过执行Select * into 表 from 表2时,也带上分区方案,如果能这样那是方便不过?<br />可以 <br />1:刪除普通索引 <br />2:刪除主健索引並轉為分區表 <br />3:再恢復主健索引 <br />4:恢復普通索引<br />use TEMPDB<br />go<br />create table转载 2010-08-11 19:59:00 · 380 阅读 · 0 评论 -
MS SQL Server:分区表、分区索引详解
<br /><br />MS SQL Server:分区表、分区索引 详解<br />1. 分区表简介<br />使用分区表的主要目的,是为了改善大型表以及具有各种访问模式的表的可伸缩性和可管理性。<br /> 大型表:数据量巨大的表。<br /> 访问模式:因目的不同,需访问的不同的数据行集,每种目的的访问可以称之为一种访问模式。<br />分区一方面可以将数据分为更小、更易管理的部分,为提高性能起到一定的作用;另一方面,对于如果具有多个CPU的系统,分区可以是对表的操作通转载 2010-08-11 19:58:00 · 740 阅读 · 0 评论 -
关于SQL SERVER高并发访问的解决办法
<br />关于SQL SERVER高并发访问的解决办法<br />问题:<br />后台系统需要连接SQL SERVER,瞬时数据操作可能会很大,如同时有好几万数据要插入数据库,但在插入数据的同时另外的线程可能还要访问本数据库,插入数据的操作优先级比较低,其他的访问需要即时返回,想了很久不知道该怎么解决,望高手赐教了。<br />回答:<br />1. 提高服务器硬件配置 <br />2. 使用 replication 之类的同步技术, 将频繁操作的表同步为多份, 将操作分散到这些同步的表中 <br />转载 2010-08-11 18:55:00 · 696 阅读 · 0 评论 -
SQL数据字典
<br />数据字典是一个预留空间,一个数据库,这是用来储存信息数据库本身。<br /> 数据字典可能包含的信息,例如:<br /> 数据库设计资料<br /> 储存的SQL程序<br /> 用户权限<br /> 用户统计<br /> 数据库的过程中的信息<br /> 数据库增长统计<br /> 数据库性能统计<br /> 数据字典则是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果.<br /> 数据字典通常包括数据项/数据结构/数据流/数据存储和处理过程五个部转载 2010-08-14 16:48:00 · 597 阅读 · 0 评论 -
每隔5分钟统计一次记录的应用实例
<br /><br />一张电话报表(id,time,telephone) time:表示顾客打入时记录的时间<br />实例如下:<br />1 2006-06-11 05:52:12 1360065460758<br />2 2006-06-11 06:09:05 1380138017292<br />3 2006-06-11 06:25:13 97363849310<br />4 2006-06-11 06:26:08 61763849310<br />5 2006-06-11 06:34:59 60转载 2010-08-14 16:58:00 · 674 阅读 · 0 评论 -
总结SQL索引
<br />索引 <br />数据库中的索引与书籍中的索引类似。在一本书中,利用索引可以快速查找所需信息,无须阅读整本书。在数据库中,索引使数据库程序无须对整个表进行扫描,就可以在其中找到所需数据。书中的索引是一个词语列表,其中注明了包含各个词的页码。而数据库中的索引是一个表中所包含的值的列表,其中注明了表中包含各个值的行所在的存储位置。可以为表中的单个列建立索引,也可以为一组列建立索引;索引采用 B 树结构。索引包含一个条目,该条目有来自表中每一行的一个或多个列(搜索关键字)。B 树按搜索关键字排序,可以转载 2010-08-14 10:36:00 · 327 阅读 · 0 评论 -
EXISTS、IN与JOIN性能分析
<br />EXISTS、IN与JOIN,都可以用来实现形如“查询A表中在(或不在)B表中的记录”的查询逻辑。<br />在论坛上看到很多人对此有所误解(如关于in的疑惑、用 外连接 和 Is Null 代替 not in两帖),特做一简单测试。<br /><br />测试结果:<br /><br />测试代码较长,附于本帖最后。<br />图表中百分数表示同一组3个查询的执行时间比例。红色表示3个语句中最慢,绿色表示3个语句中最快的,并列则没加颜色。<br />其中索引只测试了聚集索引,当表中字段较多且查转载 2010-09-01 11:56:00 · 659 阅读 · 0 评论 -
十步优化SQL Server中的数据访问
十步优化SQL Server中的数据访问本文转载至: http://tech.sina.com.cn/s/2009-11-26/00481148854.shtml<br /> <br />【IT168 技术文档】故事开篇:你和你的团队经过不懈努力,终于使网站成功上线,刚开始时,注册用户较少,网站性能表现不错,但随着注册用户的增多,访问速度开始变慢,一些用户开始发来邮件表示抗议,事情变得越来越糟,为了留住用户,你开始着手调查访问变慢的原因。<br /> 经过紧张的调查,你发现问题出在数据库上,当应用程序尝试转载 2010-08-31 19:37:00 · 670 阅读 · 0 评论 -
总结、搜集、疑问贴 关于数据的转移
<br />【总结+搜集+疑问贴】关于数据的转移<br />最近看新东西 发现数据转移方法挺多的虾 <br />我所谓的数据转移其实呢是值 各个类型的 小到表转移到另外一个库 大到不同库之间转移<br />讨论的方法:<br />-------------------------------------------------------------------------------------<br />A 表转移到例外一个库(已经存在的库)<br />方法1.SQL语句:<br />--如果是单表的转载 2010-08-27 20:21:00 · 429 阅读 · 0 评论 -
从一张表导入另一张表的问题 之整理贴
<br />zwjxxm :<br /> <br />有两张表:<br />临时表:table1<br />正式表:table2<br />table1,table2表结构相同,有以下几列:<br />{<br /> a1 varchar(50),主键<br /> a2 varchar(50),主键<br /> a3 varchar(50),主键<br /> a4 bigint(8),<br /> a5 varchar(50)<br /><br />}<br />以前表中a1,a2两列是主键,现在转载 2010-08-27 20:08:00 · 615 阅读 · 0 评论 -
sql批量导入 之整理贴
<br /> <br />frank110 :<br /> <br />我有一批数据,大约几百个.xls、.csv文件,相批量导入数据库。<br /><br />数据库内有:name、sex、age、birth、education、positionname、marrystatus、areaname、income、TelNo、mobileno、email这些字段。<br /><br />文件字段是:姓名、性别、年龄、出生日期、学历、职位、婚姻状况、地区、月收入、电话、手机、EMAIL<br /><br />现转载 2010-08-27 18:57:00 · 511 阅读 · 0 评论 -
行列互转[整理人:中国风(Roy)]
<br /><br />--行列互转<br />/******************************************************************************************************************************************************<br />以学生成绩为例子,比较形象易懂<br />整理人:中国风(Roy)<br />日期:2008.06.06<br />*****************转载 2010-08-14 16:10:00 · 332 阅读 · 0 评论 -
SQL分类汇总
<br /><br />DECLARE @t TABLE(Groups char(2),Item varchar(10),Color varchar(10),Quantity int)<br />INSERT @t SELECT 'aa','Table','Blue', 124<br />UNION ALL SELECT 'bb','Table','Red', -23<br />UNION ALL SELECT 'bb','Cup' ,'Green',-23<br />UNION ALL SELECT转载 2010-08-14 16:06:00 · 478 阅读 · 0 评论 -
按某一字段分组取最大(小)值所在行的数据
<br /><br />--按某一字段分组取最大(小)值所在行的数据<br />--(爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开) 2007-10-23于浙江杭州)<br />/*<br />数据如下:<br />name val memo<br />a 2 a2(a的第二个值)<br />a 1 a1--a的第一个值<br />a 3 a3:a的第三个值<br />b 1 b1--b的第一个值<br />b 3 b3:b的第三个值<br />b 2转载 2010-08-14 16:05:00 · 395 阅读 · 0 评论 -
标准的 SQL 的解析顺序
<br /><br />标准的 SQL 的解析顺序为: <br /> (1).FROM 子句, 组装来自不同数据源的数据<br /> (2).WHERE 子句, 基于指定的条件对记录进行筛选<br /> (3).GROUP BY 子句, 将数据划分为多个分组<br /> (4).使用聚合函数进行计算<br /> (5).使用 HAVING 子句筛选分组<br /> (6).计算所有的表达式<br /> (7).使用 ORDER BY 对结果集进行排序<br />--查询的逻转载 2010-08-14 15:42:00 · 309 阅读 · 0 评论 -
SQL锁的概述
<br />锁的概述 <br />一. 为什么要引入锁 <br />多个用户同时对数据库的并发操作时会带来以下数据不一致的问题: <br />丢失更新<br />A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统 <br />脏读<br />A用户修改了数据,随后B用户又读出该数据,但A用户因为某些原因取消了对数据的修改,数据恢复原值,此时B得到的数据就与数据库内的数据产生了不一致 <br />不可重复读<br />A用户读取数据,随后B用户读出该数据并修改,此时转载 2010-08-14 15:26:00 · 292 阅读 · 0 评论 -
SQL 几种JOIN用法实例
<br />declare @ta table (id int,va varchar(10))<br />declare @tb table (id int,vb varchar(10))<br />insert into @ta select 1,'aa' <br />insert into @ta select 2,'bc' <br />insert into @ta select 3,'ccc'<br />insert into @tb select 1,'2'<br />insert into @t转载 2010-08-14 14:39:00 · 380 阅读 · 0 评论 -
应用实例:去掉字段中多个带区号电话号码前面的区号
<br />--------------------------------------------------------------------------<br />-- Author : htl258(Tony)<br />-- Date : 2010-04-28 23:22:15<br />-- Version:Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) <br />-- Jul 9 2008转载 2010-08-14 11:58:00 · 537 阅读 · 0 评论 -
MSSQL优化之————探索MSSQL执行计划
<br /><br />MSSQL优化之————探索MSSQL执行计划<br /> <br />作者:no_mIss QQ:34813284<br />时间:2006.11.07 23:30:00<br />环境:win2003 + mssql2005 <br /> <br />最近总想整理下对MSSQL的一些理解与感悟,却一直没有心思和时间写,晚上无事便写了一篇探索MSSQL执行计划,本文讲执行计划但不仅限于讲执行计划。 <br /> <br />网上的SQL优化的文章实在是很多,说实在的,我也曾经到处转载 2010-08-11 18:53:00 · 297 阅读 · 0 评论 -
ROW_NUMBER、RANK、DENSE_RANK的用法(1)
<br /><br />ROW_NUMBER、RANK、DENSE_RANK的用法 <br />SQL Server 2005 引入几个新的排序(排名)函数,如ROW_NUMBER、RANK、DENSE_RANK等。<br />这些新函数使您可以有效地分析数据以及向查询的结果行提供排序值。 <br />--------------------------------------------------------------------------<br />ROW_NUMBER()<br />说明:返回结转载 2010-08-11 18:28:00 · 278 阅读 · 0 评论 -
动态SQL
<br /><br /> create table #student(UserName varchar(20),Subject varchar(20),Score int)<br />insert into #student values('张三','语文',74)<br />insert into #student values('张三','数学',83)<br />insert into #student values('张三','物理',93)<br />insert into #student va转载 2010-08-07 18:54:00 · 337 阅读 · 0 评论 -
借用字符串进行无规律排序
<br />view plaincopy to clipboardprint?<br />--(1)借用字符串进行无规律排序 <br />create table #DepartMent <br />( <br /> Depart varchar(10) <br />) <br />insert into #DepartMent select '组长' <br />union all select '助理' <br />union all select '总经理' <br />un转载 2010-08-07 18:53:00 · 401 阅读 · 0 评论 -
分拆字符串求和
<br /><br />view plaincopy to clipboardprint?<br />--分拆字符串求和 <br />create table #tb <br />( <br /> id int, <br /> col varchar(50), <br /> num int <br />) <br />insert into #tb select 1,'aa,bb,cc',10 <br />union all select 2,'aa,aa,bb',20 <转载 2010-08-07 18:52:00 · 348 阅读 · 0 评论 -
查询取n到m行
<br /><br /> --具体出处不清楚了,看到论坛上的就收集了<br />view plaincopy to clipboardprint?<br />1. <br />select top m * from tablename where id not in (select top n id from tablename order by id asc/*|desc*/) <br /> <br />2. <br />select top m * into 临时表(或表变量) fr转载 2010-08-07 18:51:00 · 349 阅读 · 0 评论 -
函数的简单应用(原帖地址:http://topic.csdn.net/u/20090317/16/c7f5c2e3-293d-4d67-85be-0a4a17d52855.html)
<br />create TABLE TT (id varchar(32),type varchar(32),billMoney decimal(12,2))<br />INSERT INTO TT<br /> SELECT '10001','支票',2000<br />UNION ALL <br /> SELECT '10001','预留款',1000<br />UNION ALL <br /> SELECT '10001','现金',800<br />UNION转载 2010-08-07 18:50:00 · 1077 阅读 · 0 评论 -
动态sql引用(原贴地址http://topic.csdn.net/u/20090313/10/30cd0407-3d5b-4fee-bb79-3897c137cba6.html)
<br /><br />create table tb(姓名 varchar(10) , 课程 varchar(10) , 分数 int)<br />insert into tb values('张三' , '语文' , 74)<br />insert into tb values('张三' , '数学' , 83)<br />insert into tb values('张三' , '物理' , 93)<br />insert into tb values('李四' , '语文' , 74)<br />i转载 2010-08-07 18:49:00 · 908 阅读 · 0 评论 -
字符串处理拆分字符串到列
<br /><br />create table #tab1 (aID INT,b VARCHAR(10))<br />INSERT INTO #tab1 values(1,'1,2')<br />insert into #tab1 values(2,'2,3,5')<br />insert into #tab1 values(3,'6')<br /><br />SELECT TOP 8000 id = IDENTITY(int, 1, 1) INTO # FROM syscolumns a, syscol转载 2010-08-07 18:48:00 · 331 阅读 · 0 评论 -
统计与汇总1
<br /><br />转载注明出错,谢谢!!<br /> view plaincopy to clipboardprint?<br />--(1)数据统计与汇总 <br />declare @Tb table <br />( <br /> ID int identity(1,1) primary key, <br /> EmpoyeeName varchar(50), <br /> Salary int <br />) <br />insert into @Tb sele转载 2010-08-07 18:44:00 · 279 阅读 · 0 评论 -
分解字符串并查询相关数据
<br /><br />view plaincopy to clipboardprint?<br />问题:通过分解一个带某种符号分隔的字符串在数据库中查找相关数据。 <br />例如 @str = '1,2,3',查询下表得到记录1,4,5,6 <br />ID TypeID <br />1 1,2,3,4,5,6,7,8,9,10,11,12 <br />2 2,3 <br />3 3,7,8,9 <br />4 2,6 <br />5 4,5 <br /转载 2010-08-07 18:38:00 · 261 阅读 · 0 评论 -
字符串整理系列
<br /><br />原帖地址:http://topic.csdn.net/u/20090209/08/a945701c-e0d5-40cb-85f2-f4f56ac2999b.html<br />view plaincopy to clipboardprint?<br />--(1)字符串分拆并统计 <br />create table #tb <br />( <br /> id int, <br /> col varchar(50), <br /> num转载 2010-08-07 18:37:00 · 331 阅读 · 0 评论