SQL Server 存储过程的分页方案比拼
[ 2005-06-22 23:04:13 | 作者: admin ]
SQL Server 存储过程的分页方案比拼
SQL Server 存储过程的分页,这个问题已经讨论过几年了,很多朋友在问我,所以在此发表一下我的观点
建立表:
CREATE TABLE [TestTable] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[FirstName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[LastName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[Country] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Note] [nvarchar] (2000) COLLATE Chinese_PRC_CI_AS NULL
...
阅读全文…
使用 SQL Server 时需要经常用到的几个设置选项
[ 2005-06-22 16:25:26 | 作者: admin ]
使用 SQL Server 时需要经常用到的几个设置选项
1. SET DEADLOCK_PRIORITY
2. SET LOCK_TIMEOUT
3.@@LOCK_TIMEOUT
4.SET IDENTITY_INSERT
5.SET IMPLICIT_TRANSACTIONS
6.SET NOCOUNT
7.@@ROWCOUNT
8.SET ROWCOUNT
9.SET TRANSACTION ISOLATION LEVEL
10.SET XACT_ABORT
1. SET DEADLOCK_PRIORITY
说明:控制在发生死锁情况时会话的反应方式。如果两个进程都锁定数据,并且直到其它进程释放自己的锁时,每个进程才能释放自己的锁,即发生死锁情况。
语法:SET DEADLOCK_PRIORITY { LOW | NORMAL | @deadlock_var }
...
阅读全文…
1. SET DEADLOCK_PRIORITY
2. SET LOCK_TIMEOUT
3.@@LOCK_TIMEOUT
4.SET IDENTITY_INSERT
5.SET IMPLICIT_TRANSACTIONS
6.SET NOCOUNT
7.@@ROWCOUNT
8.SET ROWCOUNT
9.SET TRANSACTION ISOLATION LEVEL
10.SET XACT_ABORT
1. SET DEADLOCK_PRIORITY
说明:控制在发生死锁情况时会话的反应方式。如果两个进程都锁定数据,并且直到其它进程释放自己的锁时,每个进程才能释放自己的锁,即发生死锁情况。
语法:SET DEADLOCK_PRIORITY { LOW | NORMAL | @deadlock_var }
...
阅读全文…
存储过程-临时表-视图的比较
[ 2005-06-22 16:24:27 | 作者: admin ]
存储过程可以提高利用性,一个存储过程可以被多次调用,并且可以节约网络传输速度。
视图是一种虚拟的表,视图只是一条预编译的SQL语句,并不保存实际数据,是以语句的形式存储的,可以提高安全性,可以是几个表中的部分字段的组合。
临时表是保存在tempdb中的实际的表,临时表是临时的一种表,并不需要占用空间,只是临时需要建立的一种表,不需要永久保存的。
视图是一种虚拟的表,视图只是一条预编译的SQL语句,并不保存实际数据,是以语句的形式存储的,可以提高安全性,可以是几个表中的部分字段的组合。
临时表是保存在tempdb中的实际的表,临时表是临时的一种表,并不需要占用空间,只是临时需要建立的一种表,不需要永久保存的。
sql server 中的 SET NOCOUNT 问题
[ 2005-06-22 16:23:59 | 作者: admin ]
当 SET NOCOUNT 为 ON 时,不返回计数(表示受 Transact-SQL 语句影响的行数)。当 SET NOCOUNT 为 OFF 时,返回计数。
即使当 SET NOCOUNT 为 ON 时,也更新 @@ROWCOUNT 函数。
当 SET NOCOUNT 为 ON 时,将不给客户端发送存储过程中的每个语句的 DONE_IN_PROC 信息。当使用 Microsoft® SQL Server™ 提供的实用工具(QA)执行查询时,在 Transact-SQL 语句(如 SELECT、INSERT、UPDATE 和 DELETE)结束时将不会在查询结果中显示"nn rows affected"。
如果存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。
SET NOCOUNT 设置是在执行或运行时设置,而不是在分析时设置。
如果存储过程中有多个语句,则默认情况下,SQL ...
阅读全文…
即使当 SET NOCOUNT 为 ON 时,也更新 @@ROWCOUNT 函数。
当 SET NOCOUNT 为 ON 时,将不给客户端发送存储过程中的每个语句的 DONE_IN_PROC 信息。当使用 Microsoft® SQL Server™ 提供的实用工具(QA)执行查询时,在 Transact-SQL 语句(如 SELECT、INSERT、UPDATE 和 DELETE)结束时将不会在查询结果中显示"nn rows affected"。
如果存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。
SET NOCOUNT 设置是在执行或运行时设置,而不是在分析时设置。
如果存储过程中有多个语句,则默认情况下,SQL ...
阅读全文…
实数的判断 Decimal 类型
[ 2005-06-20 22:27:26 | 作者: admin ]
//本月累计 = 本月 + 上月累计
if( ! Convert.ToDecimal(Request.Form["d05_03"]).Equals( Convert.ToDecimal(Convert.ToSingle(Request.Form["d05_01"]) + lastMonthData.D05_03)) )
{
strErrMsg+="销售收入-数据验证没用通过: 本月累计("+ Request.Form["d05_03"] +")=本月("+ Request.Form["d05_01"] +")+上月累计("+ lastMonthData.D05_03.ToString() +")\\n";
}
if( ! Convert.ToDecimal(Request.Form["d05_03"]).Equals( Convert.ToDecimal(Convert.ToSingle(Request.Form["d05_01"]) + lastMonthData.D05_03)) )
{
strErrMsg+="销售收入-数据验证没用通过: 本月累计("+ Request.Form["d05_03"] +")=本月("+ Request.Form["d05_01"] +")+上月累计("+ lastMonthData.D05_03.ToString() +")\\n";
}
access导入dbf时遇到问题
[ 2005-06-16 09:52:57 | 作者: admin ]
提示格式不正确的时候,可以安装 BDE5.0 数据库引擎
Sql Server实用操作维护小技巧集合
[ 2005-06-15 16:18:06 | 作者: admin ]
Sql Server实用操作小技巧集合
包括安装时提示有挂起的操作、收缩数据库、压缩数据库、转移数据库给新用户以已存在用户权限、检查备份集、修复数据库等
(一)挂起操作
在安装Sql或sp补丁的时候系统提示之前有挂起的安装操作,要求重启,这里往往重启无用,解决办法:
到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
删除PendingFileRenameOperations
(二)收缩数据库
--重建索引
DBCC REINDEX
DBCC INDEXDEFRAG
--收缩数据和日志
DBCC SHRINKDB
DBCC SHRINKFILE
(三)压缩数据库
dbcc shrinkdatabase(dbname)
(四)转移数据库给新用户以已存在用户权限
...
阅读全文…
包括安装时提示有挂起的操作、收缩数据库、压缩数据库、转移数据库给新用户以已存在用户权限、检查备份集、修复数据库等
(一)挂起操作
在安装Sql或sp补丁的时候系统提示之前有挂起的安装操作,要求重启,这里往往重启无用,解决办法:
到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
删除PendingFileRenameOperations
(二)收缩数据库
--重建索引
DBCC REINDEX
DBCC INDEXDEFRAG
--收缩数据和日志
DBCC SHRINKDB
DBCC SHRINKFILE
(三)压缩数据库
dbcc shrinkdatabase(dbname)
(四)转移数据库给新用户以已存在用户权限
...
阅读全文…
一个效率很差的存储过程例子
[ 2005-06-15 16:12:08 | 作者: admin ]
一个效率很差的存储过程
CREATE PROCEDURE sp_vbnet_compute AS
declare @matnr varchar(18),@werks varchar(4),@kriqi datetime,@meins varchar(10),@matnrtemp varchar(18)
declare @bomatnr varchar(18),@bomsehl varchar(10),@menge float
declare @price float,@danw varchar(20)
declare @umrez float,@aaprice float,@jjprice float,@arate float,@jrate float,@asy float,@jsy float
declare @cpjg float,@umren float
...
阅读全文…
CREATE PROCEDURE sp_vbnet_compute AS
declare @matnr varchar(18),@werks varchar(4),@kriqi datetime,@meins varchar(10),@matnrtemp varchar(18)
declare @bomatnr varchar(18),@bomsehl varchar(10),@menge float
declare @price float,@danw varchar(20)
declare @umrez float,@aaprice float,@jjprice float,@arate float,@jrate float,@asy float,@jsy float
declare @cpjg float,@umren float
...
阅读全文…