今天说一下 tablesample 这个东西

TableSample 平时用得少,基本上就是用于表里面抽样数据来看的。

用法如下

SELECT * FROM tbname TABLESAMPLE SYSTEM (N PERCENT/M Rows)  REPEATABLE()
TABLESAMPLE SYSTEM 这个表示使用System的方法进行数据抽样。(目前我也只知道有System这个方法)
N PERCENT/M Rows 可以选择抽样多少行,也可以抽样多少百分比
REPEATABLE 关键字里面还可以填入一个种子值,填充了之后每次可以得到一致的结果。下面做实验,创建一个测试表
CREATE TABLE [dbo].[Tmp123]
(
[ID] [int] NOT NULL IDENTITY(1, 1),
[Col1] [char] (200)
) ON [PRIMARY]
GO

塞进去500条数据

INSERT INTO dbo.Tmp123
        ( Col1 )
VALUES  ( ‘abcd‘  )

GO 500

大概看了一下下,DBCC IND(‘Test‘,‘Tmp123‘,-1) 占用了15个数据页,然后我们使用 tablesample 来进行抽样

SELECT *
    FROM dbo.Tmp123 TABLESAMPLE (25 ROWS) 

这里执行之后发现。大概2次有1次没有返回任何数据,然而返回的数据也并不是准确的25条。

这就是TableSample 的特性,是因为sql server 会根据System方法随机决定是否要读取该数据页的数据进行显示,只能说,请求的行数越多,会越接近TableSample里面请求的行数。

那我们就可以进行一个变形

SELECT top 25 *
    FROM dbo.Tmp123 TABLESAMPLE (25 ROWS) 

加上Top 去控制,那么得到的行,最多是25行,但是也会有少于25行的情况出现。so ……你懂的~

然后再说下我了解到的情况,为什么返回的几率是差不多一半一半呢?是这样纸的

1、这个表占用了15个数据页,总数据量是500条,我请求了25条 ,占比是  25/500 = 5% (是的,无论请求行数还是百分比,都会转换为百分比进行运算)

2、那么每个数据页的读取可能性就是 5% 了~一共15个数据页,其中没有结果返回的概率是  (1-5%)^15 = 43% ,差不多50%,所以调用的时候就觉得一半一半,样例越多越趋近这个结果

3、那如果现实的行比实际多,也是因为这个概率问题。如果表里面的数据越多,请求的行数越多,越接近请求的值。

4、如果真想精确的控制行数来实现随机,那么请用

SELECT top 25 *
    FROM dbo.Tmp123
        ORDER BY NewID()

好~说完了~

时间: 2024-10-12 14:34:43

今天说一下 tablesample 这个东西的相关文章

web基础知识(一)关于ajax传值最基础东西

HTTP方法之 GET对比POST GET:从指定的资源请求数据, POST:向指定的资源提交要被处理的数据 GET方法: 请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的: /test/demo_form.asp?name1=value1&name2=value2 有关 GET 请求的其他一些注释: GET 请求可被缓存 GET 请求保留在浏览器历史记录中 GET 请求可被收藏为书签 GET 请求不应在处理敏感数据时使用 GET 请求有长度限制 GET 请求只应当用于取回

栅格那点儿事(一)---Raster是个啥子东西

Raster是个啥子东西 现如今,不仅是在遥感应用中能看到花花绿绿的影像了,在GIS应用中也能随处看到她们的身影.在各种在线地图中,卫星影像作为底图与矢量的道路层叠加:高程DEM作为高程来源实现地形的山影效果.相信大家对影像这个词,应该一点儿也不感到陌生. 那么栅格呢?相对与我们熟悉的影像,这俩只是名词上的区别么? 栅格(Raster)和影像(Images/Imagery)在GIS应用中经常被相互指代.如果非要区别一下呢,影像是指通过各种遥感设备,传感器,或者照相机得到的电子的或者纸质的图片,栅

创业的最早期,建议一定要以“能赚到现金”为主要目的——必须想好并已经有一个能“月月能赚点”的基本业务,然后花精力主做自己的核心业务。不要自己搞技术,相信我一定要花钱请人搞。把战略性的东西留给自己搞 good

其实我创业也不是很成功(目前属于第二次).目前为止,基本保证家里足够温饱和足够温馨,偶尔奢侈,但是我坚持走技术路线,不做土豪(因为做不了). 我创业的口号是:成全别人,累死自己!! 有人问,创业混的还可以的标准什么?我总结如下: 1.超级型.大家看看马云就知道了,包括各种IT企业的大咖,不过能达到他们这个程度几率比中500万还小. 2.标准型.一般有自己的公司,稳定的业务,以及目测至少十年内能保持2%-10%的利润增长点 3.不按套路型.创业不一定要有自己的公司,很多淘宝或者自媒体牛人也是非常成

vray学习笔记(4)混合材质是个什么东西

看下定义: The Blend material lets you mix two materials on a single side of the surface. Blend material材质的出现时为了解决怎么将两种材质混合的问题而出现的. 混合材质一般用在什么地方呢? 我所了解的是游戏地形方面会用到,我做了一个demo,可以看下效果. 它是由两个材质构成的,一个是黄土的材质,一个是绿草地的材质,看下材质编辑器里面是个什么情况. 上面就是混合材质的直观感受,我们再回顾下定义,"将两个

怎么让一个东西看起来比较亮?

根据日常生活的观察,我们说一个东西很亮通常它的感觉是这样的,第一这个物体本身是比较亮的颜色,第二是这个亮的物体能够照亮周围的空气.物体等. 第一点在PS中比较简单,直接选取亮度比较高的颜色即可,第二点可以通过高斯模糊来实现. 我这里用PS画了一个圆. 白色是最亮的颜色了吧,但是如果我们把这个圆复制一份,再给复制出来的那一份加一个高斯模糊,就变成了下面这个样子. 效果明显比第一张要好,我们再多复制几个,每个用不同的高斯模糊,最后的结果是这样的: 是不是感觉亮了很多呢?

没有理由,就是要上一波C++的东西

从入门开始,一直在用C , 对于C++可谓是一窍不通,只能是勉强看懂C++的代码,至于写更是连头文件什么iostream是什么我都不知道,更不用说什么using namespace std :之类的东西,以至于我写第一个C++文件时,不知道输入时>>输出是<<还要打"",简直尬爆了....... #include<cstdio> #include<iostream> using namespace std ; int main () {

大学毕业必须知道的东西:三方协议、报到证(派遣证)、干部身份

[档案问题] 毕业之前必看的东西-你自己的档案问题,详细至极真正能证明你学习经历的就是你的档案.档案里面有你各个时期的学籍卡.成绩单.各方面的评语.获奖证明.还有你的党团材料.这些都是原始材料,不可复制. 档案虽然"光辉不再",但并不等于是随处可丢弃的"鸡肋", 专家建议:应届生应关心自己的档案,免得未来不必要的麻烦. [档案与工龄] 很多大学毕业生找到工作后,没有及时办理参加工作手续,工作几年后仍然是学生身份,从而影响了自己的转正定级,也影响到工龄和退休金的计算.

11.12模拟考T1(可持续优化)PS:神奇的东西

1.数列操作   (array.pas/c/cpp) [问题描述] 现在有一个数列,最初包含0个数.现在要对数列操作n次,操作有3类. 1) a k,在数列的最后插入一个整数k 2) s 将最近插入的数删除. 3) t k 将数列恢复第k次操作前的状态 下面是一个例子,有12个操作 1 a 5 -> [5] => 5 加入数5 2 a 3 -> [5,3] => 3 加入数3 3 a 7 -> [5,3,7] => 7 加入数7 4 s -> [5,3] =>

买东西,你要5块,给你称8块的应对策略

前天下公交,看到路边有卖香蕉的,10块5斤,心里一动,家里的桔子刚吃完,买了."老板,给我拿5块钱香蕉",老板唰唰唰,捞起香薰就称,"6块,唔,是8块",心里略不满,没事,默默掏出10块给了她,收下钱,她看了看我,"要不,就拿10块钱吧",没等我说话,唰唰唰又塞了几根,"刚好10块"我察,就没打算找我钱是吧,我内心瞬间郁结了,我说了句"就8块吧",她不回,又往里面塞了个桔子,"再给你加个桔子&qu