易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : sql

MS SQL SERVER 查询优化

查询速度慢的原因很多,常见如下几种 
        1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 
        2、I/O吞吐量小,形成了瓶颈效应。 
        3、没有创建计算列导致查询不优化。 
        4、内存不足 
        5、网络速度慢 
        6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 
        7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 
        8、sp_lock,sp_who,活动的用户查看,原因是读写竞争资源。 
        9、返回了不必要的行和列 
        10、查询语句不好,没有优化 
        可以通过如下方 ......

sql 存储过程 判断异常(简单)

Create  PROCEDURE [dbo].[PR_addRoles]
@RolesID INT,
@Roles varchar (100),
@ID INT OUT
AS
BEGIN TRY
BEGIN TRAN
 INSERT FS_Roles (RolesID,Roles) VALUES (@RolesID,@Roles)
 COMMIT TRAN
 SET @ID=1
END TRY
BEGIN CATCH
 ROLLBACK TRAN
 SET @ID=0
 END CATCH
 FS_Roles 表有2个字段,RolesID (int,不是自动增长类型),Roles(string)
插入的时候有相同的数字就会有异常。 ......

SQL Server 知识积累

varchar和nvarchar如何选择:
varchar在SQL Server中是采用单字节来存储数据的,nvarchar是使用Unico来存储数据的。中文字符存储到SQL Server中会保存为两个字节(一般采用Unico编码),英文字符保存到数据库中,如果字段的类型为varchar,则只会占用一个字节,而如果字段的类型为nvarchar,则会占用两个字节。虽然使用nvarchar存储英文字符会增大一倍的存储空间,但设计的时候应该尽量使用nvarchar来存储数据。只有在你确保该字段不会保存中文的时候,才采用varchar来存储。 ......

SQL流水帐号的生成

1 --下面的代码生成长度为8的编号,编号以BH开头,其余6位为流水号。
2 --得到新编号的函数
3 CREATE FUNCTION f_NextBH()
4 RETURNS char(8)
5 AS
6 BEGIN
7     RETURN(SELECT 'BH'+RIGHT(1000001+ISNULL(RIGHT(MAX(BH),6),0),6) from tb WITH(XLOCK,PAGLOCK))
8 END
9 GO
10
11 --在表中应用函数
12 CREATE TABLE tb(
13 BH char(8) PRIMARY KEY DEFAULT dbo.f_NextBH(),
14 col int)
15
16 --插入资料
17 BEGIN TRAN
18     INSERT tb(col) VALUES(1)
19     INSERT tb(col) VALUES(2)
20     INSERT tb(col) VALUES(3)
21     DELETE tb WHERE col=3
22     INSERT tb(col) VALUES(4)
23     INSERT tb(BH,col) VALUES(dbo.f_NextBH(),14)
24 COMMIT TRAN
25
26 --显示结果
27 SELECT * from tb
28 /*--结果
29 BH          col
30 ---------------- -----------
31 BH000001   1
32 BH000002   2
33 BH000003& ......

精妙Sql语句

1. 判断a表中有而b表中没有的记录
select a.* from tbl1 a
left join tbl2 b
on a.key = b.key
where b.key is null
         虽然使用in也可以实现,但是这种方法的效率更高一些
2. 新建一个与某个表相同结构的表
select * into b
from a where 1<>1
3.between的用法,between限制查询数据范围时包括了边界值,not between不包括
select * from table1 where time between time1 and time2
select a,b,c, from table1 where a not between 数值1 and 数值2
4. 说明:包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重复行而派生出一个结果表
(select a from tableA ) except (select a from tableB) except (select a from tableC)
5. 初始化表,可以将自增长表的字增长字段置为1
TRUNCATE TABLE table1
6.多语言设置数据库或者表或者order by的排序规则
         --修改用户数据库的排序规则
ater database dbname collate SQL_Latin1_General_CP1_CI_AS
--修改字段的排序规则
alter table a alter column c2 varchar(50) collate SQL_Latin1 ......

SQL 中 Delete、Truncate、Drop区别

删除表记录,快速删除表记录,删除表这些语句相信大家都会,下面整理一下Truncate、delete、drop用法区别:
相同点
truncate和不带where子句的delete, 以及drop都会删除表内的数据
不同点:
1. truncate和 delete只删除数据不删除表的结构(定义)
    drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态.
2.delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发.
   truncate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger.
3.delete语句不影响表所占用的extent, 高水线(high watermark)保持原位置不动
  显然drop语句将表所占用的空间全部释放
  truncate 语句缺省情况下见空间释放到 minextents个 extent,除非使用reuse storage;   truncate会将高水线复位(回到最开始).
4.速度,一般来说: drop>; truncate >; delete
5.安全性:小心使用drop 和truncate,尤其没有备份的时候.否则哭都来不及
使用上,想删除部分 ......
总记录数:4346; 总页数:725; 每页6 条; 首页 上一页 [382] [383] [384] [385] 386 [387] [388] [389] [390] [391]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号