随笔分类 - SQL
摘要:一、背景在MySQL的mysql.User表保存了登陆用户的权限信息,Host和User字段则是关于登陆IP的限制。但是在SQL Server没有这样一个表,那SQL Server有什么办法可以实现类似的安全控制的功能呢?SQL Server 包括三种常规类型的触发器:DML触发器、DDL触发器和登录触发器。DML触发器是比较常使用的,它通常在表或视图中修改数据(INSERT、UPDATE和DELETE 等)为了保证业务数据的完整性和一致性,可以对事务进行回滚等操作;如果你对DDL触发器感兴趣,可以参考:SQL Server DDL触发器运用,里面涉及到DDL触发器的知识;登陆触发器将在本文运
阅读全文
摘要:当你的MSSQL数据库cpu很高的时候,如何去定位损耗cpu的SQL语句,并解决损耗问题?接下来我为大家实际解决一下这个问题:1.首先我们要用查询追踪器追踪耗费cpu的sql语句,如图设置: 打开查询器后,筛选查询条件,只需要选择红色方框的即可(存储过程和SQL语句的跟踪) 点击列筛选器,cpu和duration耗时的条件 选择你认为有问题的sql语句或者存储过程,选中那条数据,在列表下面有个方框会把sql内容显示在上面,复制出来 2. 放到查询器当中,选择红色方框的“数据库引擎优化顾问” 执行分析:分析后,优化顾问会提供优化方案给你,估计能提供57%的速度和损耗,基本上方案都是建议...
阅读全文
摘要:故事开篇:你和你的团队经过不懈努力,终于使网站成功上线,刚开始时,注册用户较少,网站性能表现不错,但随着注册用户的增多,访问速度开始变慢,一些用户开始发来邮件表示抗议,事情变得越来越糟,为了留住用户,你开始着手调查访问变慢的原因。 经过紧张的调查,你发现问题出在数据库上,当应用程序尝试访问/更新数据时,数据库执行得相当慢,再次深入调查数据库后,你发现数据库表增长得 很大,有些表甚至有上千万行数据,测试团队开始在生产数据库上测试,发现订单提交过程需要花5分钟时间,但在网站上线前的测试中,提交一次订单只需要 2/3秒。 类似这种故事在世界各个角落每天都会上演,几乎每个开发人员在其开发生涯中都会..
阅读全文
摘要:在SQL2000/2005中可以快速压缩日志log文件,通过SQL:--myDbName是需要瘦身的数据库名backup log myDbName with no_log;backup log myDbName with truncate_only;dbcc SHRINKDATABASE(myDbName);对于SQL2008以上命令不能运行,SQL2008说明:BACKUP LOG WITH NO_LOG 和 WITH TRUNCATE_ONLY 选项已废止。使用完整恢复模式或大容量日志恢复模式时,如果必须删除数据库中的日志备份链,请切换至简单恢复模式。有关详细信息,请参阅有关从完整恢复模式
阅读全文
摘要:在一条 INSERT、SELECT INTO 或大容量复制语句完成后,@@IDENTITY 中包含语句生成的最后一个标识值。如果语句未影响任何包含标识列的表,则 @@IDENTITY 返回 NULL。如果插入了多个行,生成了多个标识值,则 @@IDENTITY 将返回最后生成的标识值。如果语句触发了一个或多个触发器,该触发器又执行了生成标识值的插入操作,那么,在语句执行后立即调用 @@IDENTITY 将返回触发器生成的最后一个标识值。如果对包含标识列的表执行插入操作后触发了触发器,并且触发器对另一个没有标识列的表执行了插入操作,则 @@IDENTITY 将返回第一次插入的标识值。出现 IN.
阅读全文
摘要:Microsoft SQL Server 2005 提供了一些工具来监控数据库。方法之一是动态管理视图。动态管理视图 (DMV) 和动态管理函数 (DMF) 返回的服务器状态信息可用于监控服务器实例的运行状况、诊断问题和优化性能。常规服务器动态管理对象包括:dm_db_*:数据库和数据库对象dm_exec_*:执行用户代码和关联的连接dm_os_*:内存、锁定和时间安排dm_tran_*:事务和隔离dm_io_*:网络和磁盘的输入/输出此部分介绍为监控 SQL Server 运行状况而针对这些动态管理视图和函数运行的一些常用查询。示例查询您可以运行以下查询来获取所有 DMV 和 DMF 名称:
阅读全文
摘要:加密使用关键字:ENCRYPTIONCREATE procedure dbo.sp_EytTest @para varchar(50)
WITH ENCRYPTION
as begin select @para end
go
解密:解密的储存过程都来自网络,需要在DAC下使用.sql server 2000 解密 :create PROCEDURE [dbo].[sp_decrypt](@objectname varchar(50))
AS
begin
set nocount on
begin tran
declare @objectname1 varchar(100),@o...
阅读全文