随笔分类 - Database
Database 技术
摘要:转自:http://blog.csdn.net/feixianxxx/article/details/5524819 SQL Server 优化性能的几个方面 (一).数据库的设计 可以参看最近论坛上出现一个精华帖http://topic.csdn.net/u/20100415/10/a377d83
阅读全文
摘要:原文地址:http://www.cnblogs.com/downmoon/archive/2012/04/19/2456451.html在《SQL Server 2012服务端使用OFFSET/FETCH NEXT实现分页》一文中,我引用了《SQL Server 2012 - Server side...
阅读全文
摘要:1、varchar 与 nvarchar 的区别?varchar(n):长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。nvarchar(n):包含 n 个字符的可变长度 Uni...
阅读全文
摘要:一、问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用 系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要的问题之一。系统优化中一个很重要的方面就是SQL语句的优...
阅读全文
摘要:使用数据库分页返回用户数据有如下好处:1、减少服务器磁盘系统地读取压力2、减少网络流量,减轻网络压力3、减轻客户端显示数据的压力4、提高处理效率。一般而言分页处理分为两种:应用程序中的分页(查询出所有数据)处理和数据库中的分页处理。目前大多数的应用都是在应用程序中借助支持数据分页处理的数据库访问组件...
阅读全文
摘要:【sqlserver】:sqlserver 认为 null 最小。升序排列:null 值默认排在最前。要想排后面,则:order by case when col is null then 1 else 0 end ,col降序排列:null 值默认排在最后。要想排在前面,则:order by case when col is null then 0 else 1 end , col desc【oracle】:oracle认为 null 最大。升序排列,默认情况下,null值排后面。降序排序,默认情况下,null值排前面。有几种办法改变这种情况:(1)用 nvl 函数或decode 函数 将n
阅读全文
摘要:一、概述 通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。多表连接查询是使用Sql的基本操作,但连接的方式却有多种,熟练使用这些连接方式能够简化Sql语句,提高数据库运行效率。 在关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在一个表中。当检索数据时,通过连接操作查询出存放在多个表中的不同实体的信息。连接操作给用户带来很大的灵活性,他们可以在任何时候增加新的数据类型。为不同实体创建新的表,然后通过连接进行查询。 连接可以在SELECT 语句的FROM子句或WHERE子句中建立,似是而非...
阅读全文
摘要:sysobjectssysobjects是系统自建的表,里面存储了在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等),各在表中占一行。只有在 tempdb 内,每个临时对象才在该表中占一行。列名数据类型描述namesysname对象名。Idint对象标识号。xtypechar(2)对象类型。可以是下列对象类型中的一种: C = CHECK 约束D = 默认值或 DEFAULT 约束F = FOREIGN KEY 约束L = 日志FN = 标量函数IF = 内嵌表函数P = 存储过程PK = PRIMARY KEY 约束(类型是 K)RF = 复制筛选存储过程S = 系统表TF =
阅读全文
摘要:最近要写触发器,对数据库中每个用户表都要写,一查170多个表,晕了~,想偷懒自制程序完成这些一些批量的操作,所以搜集了一下对数据库其他操作的东东!--一时兴起,随处搜集1、创建数据库 CREATE DATABASE DB001--默认路径和大小2、创建用户 CREATE LOGIN USER1 WITH PASSWORD = 'USER_PW';3、修改数据的所有者 USE DB001 exec sp_changedbowner 'USER1'4、 设置READ_COMMITTED_SNAPSHOT ALTER DATABASE [DB001] SET READ
阅读全文
摘要:一、触发器定义和创建: 触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由个事件来触发,比如当对一个表进行操作(insert,delete,update)时就会激活它执行。 触发器可以在查询分析器里创建,也可以在表名上点右键->“所有任务”->“管理触发器”来创建,不过都是要写 T-SQL 语句的,只是在查询分析器里要先确定当前操作的数据库。创建触发器用 CREATE TRIGGER 基本语法: CREATE TRIGGER 触发器名称 ON 表名 FOR INSERT、UPDATE 或 DELETE AS T-SQL 语句 下面是联机丛书上
阅读全文
摘要:1.查询的模糊匹配尽量避免在一个复杂查询里面使用 LIKE '%parm1%'—— 红色标识位置的百分号会导致相关列的索引无法使用,最好不要用.解决办法:其实只需要对该脚本略做改进,查询速度便会提高近百倍。改进方法如下:a、修改前台程序——把查询条件的供应商名称一栏由原来的文本输入改为下拉列表,用户模糊输入供应商名称时,直接在前台就帮忙定位到具体的供应商,这样在调用后台程序时,这列就可以直接用等于来关联了。b、直接修改后台——根据输入条件,先查出符合条件的供应商,并把相关记录保存在一个临时表里头,然后再用临时表去做复杂关联2.索引问题在做性能跟踪分析过程中,经常发现有不少后台程
阅读全文
摘要:方法一declare @max integer,@id integerdeclare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) > 1open cur_rowsfetch cur_rows into @id,@maxwhile @@fetch_status=0beginselect @max = @max -1set rowcount @maxdelete from 表名 where 主字段 = @idfetch cur_rows into @id,@maxendc
阅读全文

浙公网安备 33010602011771号