易截截图软件、单文件、免安装、纯绿色、仅160KB

SQL 随机抽样的总结

对于SQL 随机抽样我们常想到的就是newid(),但如果对于一个在百万、千万甚至更大海量数据表中抽样的话,简单的newid(),其性能,效率就不是很理想了。所以在这里有必要讨论一下,择优而用。
 
long_goods是一个百万数据的表,Ctrl+L执行以下语句:
 
--id_index是我为主键加的一个非聚焦索引
SELECT top 1  * from long_goods order by newid()
--查询开销 43%
SELECT top 1  * from long_goods with(index=id_index) order by newid()
--查询开销 54%
select top 1 * from long_goods where id=(select top 1 id from long_goods order by newid())
--查询开销 1%
select top 1 * from long_goods where id=(select top 1 id from long_goods with(index=id_index) order by newid())
--查询开销 1%
 
虽然第三个与第四个的开销是一样,但实际应该是第四种优于第三种。
 
如果MS SQL2005升级到支持 TABLESAMPLE 的话,以下语句的抽样执行效率可为最优的
SELECT * from long_goods TABLESAMPLE SYSTEM (10 PERCENT)
 
呵呵..下班了,至于其中原因,下次有空再续.


相关文档:

SQL Server服务器角色与数据库角色区别

固定服务器角色
sysadmin 可以在 SQL Server 中执行任何活动。
serveradmin 可以设置服务器范围的配置选项,关闭服务器。
setupadmin 可以管理链接服务器和启动过程。
securityadmin 可以管理登录和 CREATE DATABASE 权限,还可以读取错误日志和更改密码。
processadmin 可以管理在 SQL Server 中运行的进程。
......

sql格式化日期

Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2010 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06
Select CONVERT(varch ......

SQL获取所有数据库名、表名、储存过程以及参数列表

SQL获取所有数据库名、表名、储存过程以及参数列表
1.获取所有数据库名:
   (1)、Select Name from Master..SysDatabases order by Name
2.获取所有表名:
   (1)、Select Name from SysObjects Where XType=''U'' orDER BY Name
           XType='' ......

PL/SQL 控制结构

在PL/SQL中引入了控制结构,包括选择结构,循环结构和跳转结构
一 选择结构
1,IF 语句
 
    在PL/SQL中,选择结构可以通过if语句来实现,也可以通过Case语句(oracle9i中)
    利用if语句实现选择控制的语法为:
     if condition1 then statements1 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号