易截截图软件、单文件、免安装、纯绿色、仅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

在sql server中关于游标cursor的使用

--此处使用pubs库
declare @myname varchar(50)
declare @fname varchar(20)
declare @lname varchar(20)
declare my_cursor cursor for
select fname,lname from employee order by emp_id
open my_cursor
fetch next from my_cursor into @fname,@lname
while @@fetch_status=0
begin
    set @myname=@fname+@lname
    fetch next from my_cursor into @fname,@lname
end
close my_cursor
deallocate my_cursor ......

SQL Server:定时作业的设置方法

【转】http://space.cnblogs.com/group/topic/33473/
http://www.cnblogs.com/ghd258/archive/2005/10/24/260836.html
如果在SQL Server 里需要定时或者每隔一段时间执行某个存储过程或3200字符以内的SQL语句时,可以用管理->SQL Server代理->作业来实现。 
  1、管理->SQL Server代理->作业(按鼠标右键)->新建作业->
  2、新建作业属性(常规)->名称[自定义本次作业的名称]->启用的方框内是勾号->
  分类处可选择也可用默认的[未分类(本地)]->所有者默认为登录SQL Server用户[也可选其它的登录]->
  描述[填写本次工作详细描述内容];
  [ 创建作业分类的步骤: 
    SQL Server代理->作业->右键选所有任务->添加、修改、删除 ]
  3、新建作业属性(步骤)->新建->步骤名[自定义第一步骤名称]->类型[Transact-SQL(TSQL)脚本]->
     数据库[要操作的数据库]->命令
   
     [ 如果是简单的SQL直接写进去即可,也可用打开按钮输入一个已写好的*.sql文件
  ......

SQL参数化排序详解

编写一个储存过程usp_GetSortedShippers,它接收Northwind数据库中Shippers表的一个列名称作为其中一个输入(@colname),并从该表返回按输入的列名排序的行。另一个输入(@sortdir)表示排序的方向,‘A’表示按升顺排序,‘D’表示按降序排序。编写该存储过程时要注意它的性能,即,尽可能的使用索引(例如,排序列上的聚集或非聚集覆盖索引)。
代码清单7-4是该任务建议的第一个解决方案
代码清单7-4  参数化排序,解决方案1
USE Northwind;
GO
IF OBJECT_ID('dbo.usp_GetSortedShippers') IS NOT NULL
  DROP PROC dbo.usp_GetSortedShippers;
GO
CREATE PROC dbo.usp_GetSortedShippers
  @colname AS sysname, @sortdir AS CHAR(1) = 'A'
AS
IF @sortdir = 'A'
  SELECT ShipperID, CompanyName, Phone
  from dbo.Shippers
  ORDER BY
    CASE @colname
      WHEN N'ShipperID'   THEN CAST(ShipperID AS SQL_VARIANT)
      WHEN N'CompanyName' THEN CAST(CompanyName AS SQL_VARIANT)
     ......

让editplus识别SQL关键字

首先就是要自己编写一段代码,存为.stx
文件(例如sql.stx),然后在editplus的菜单栏Tools->Configure User
Tools->Files->Setting &syntax,点add按钮,在description栏位填上sql,file
Extensions栏位也填上sql,如果有多个扩展名,之间用“;”隔开(例如:sql;db2),然后在syntax
file栏位填上sql.stx文件所在的路径,
我的是在D:\tools\editplus\SQL.stx,这样就可以了。
下面是我的sql.stx文件源码:
#TITLE=SQL
; SQL syntax file written by KK.
#DELIMITER=,(){}[]-+*%/="’~!&|<>?:;.
#QUOTATION=’
#QUOTATION2='
#LINECOMMENT=--
#COMMENTON=/*
#COMMENTOFF=*/
#SPECIAL_STX=SQL
#KEYWORD=SQL Tags
;VAR
sql_variant
datetime
smalldatetime
float
real
decimal
money
smallmoney
bigint
int
smallint
tinyint
bit
ntext
text
image
integer
timestamp
uniqueidentifier
nvarchar
nchar
varchar
char
CHARACTER
varbinary
binary
number
OTHERS
varchar2
#KEYWORD=Reserved words
LOGON
NOTFOUND
ADD
AFTER
ALL
......

测量sql 解析耗费的时间比例

清空共享池,关闭,重启数据库
SQL> shutdown immediate;
SQL> startup;
开启 时间统计
SQL> set timi on
SQL> select count(*) from dba_objects;
  COUNT(*)
----------
     11308
Elapsed: 00:00:00.19
SQL> /
  COUNT(*)
----------
     11308
Elapsed: 00:00:00.03
SQL> /
  COUNT(*)
----------
     11308
Elapsed: 00:00:00.03
SQL> select 16/19 from dual;
     16/19
----------
.842105263
可以看到 解析时间 所占用了绝大部分时间 ,单凭这个实验 不能说SQL解析会占用84%的时间,不过可以肯定的是 SQL解析会占用SQL语句运行的很大部分时间。
下面来测试一下 使用绑定变量 和不使用绑定变量所SQL解析所带来的性能问题
执行两个脚本 第一个 脚本不使用绑定变量
bind1.sql脚本内容如下:
declare
type cur is ref cursor;
cur1 cur;
name varchar2(1000);
begin
for i in 1..1000 loop
open cur1 for 'select object_name from dba_objects where object_id=' || i;
fetch cur1 into name;
close c ......

pl/sql 实现归并算法

在网上看到关于归并算法,没有数据库级的,当然数据级的算法对于数据库来说就是一个排序。今天写一个pl/sql的归并算法。
归并的算法很容易理解,网上很详细,现只把源码贴出来。
(包声明部分)
CREATE OR REPLACE PACKAGE PG_MERGESORT IS
  -- Author  : wealth_khb@126.com
  -- Created : 2009-10-20 10:09:16
  -- Purpose :
  TYPE EMP_SSN_ARRAY IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; ---声明数组类型
  BEST_EMPLOYEES EMP_SSN_ARRAY; ----数组
  BIG_UPPER    INTEGER;
  MIDDLE_VALUE NUMBER; ---------最大
  -- Public function and procedure declarations
  ------初始化过程
  PROCEDURE PRO_MERGESORT(UPPER_N IN NUMBER);
  FUNCTION FUN_MERGESORT(UPPER_ARRAY IN EMP_SSN_ARRAY) RETURN EMP_SSN_ARRAY;
  FUNCTION FUN_MERGE(LEFT_ARRAY  IN EMP_SSN_ARRAY,
                     RIGHT_ARRAY IN EMP_SSN_ARRAY) RETURN EMP_SSN_A ......
总记录数:4346; 总页数:725; 每页6 条; 首页 上一页 [651] [652] [653] [654] 655 [656] [657] [658] [659] [660]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号