;
GO
下面我们来看一个简单的查询
USE AdventureWorks2012
GO
SELECT SalesOrderDetailID, UnitPrice
FROM Sales.SalesOrderDetail
WHERE UnitPrice > 2000
GO
上述列中未建立任何索引,当然除了SalesOrderDetailID默认创建的聚集索引,这种情况下我们能够猜想到其执行的查询计划必然是主键创建的聚集索引扫描,如下
上述我们已经说过此时未在查询条件上创建索引,所以此时必然走的是主键创建的聚集索引,接下来我们首先在UnitPrice列上创建非聚集索引来提高查询性能,
CREATE NONCLUSTERED INDEX idx_SalesOrderDetail_UnitPrice
ON Sales.SalesOrderDetail(UnitPrice)
此时我们再来比较二者查询开销
USE AdventureWorks2012
GO
DBCC FREEPROCCACHE
DBCC DROPCLEANBUFFERS
SELECT SalesOrderDetailID, UnitPrice
FROM AdventureWorks2012.Sales.SalesOrderDetail WITH(INDEX([PK_SalesOrderDetail_SalesOrderID_SalesOrderDetailID]))
WHERE UnitPrice > 2000
GO
SELECT SalesOrderDetailID, UnitPrice
FROM Sales.SalesOrderDetail WITH(INDEX([idx_SalesOrderDetail_UnitPrice]))
WHERE UnitPrice > 2000
此时在查询条件上建立了非聚集索引之后,查询开销提升的非常明显,提升达到了90%以上,因为非聚集索引也会引用了主键创建的聚集索引,所以这个时候不会导致Bookmark Lookup或者Key Lookup查找。接下来我们我们再添加一个带有条件的非聚集索引即过滤索引
CREATE NONCLUSTERED INDEX idxwhere_SalesOrderDetail_UnitPrice
ON Sales.SalesOrderDetail(UnitPrice)
WHERE UnitPrice > 1000
此时我们再来看看创建了过滤索引之后和之前非聚集索引性能开销差异:
USE AdventureWorks2012
GO
DBCC FREEPROCCACHE
DBCC DROPCLEANBUFFERS
SELECT SalesOrderDetailID, UnitPrice
FROM AdventureWorks2012.Sales.SalesOrderDetail WITH(INDEX([idx_SalesOrderDetail_UnitPrice]))
WHERE UnitPrice > 2000
SELECT SalesOrderDetailID, UnitPrice
FROM Sales.SalesOrderDetail WITH(INDEX([idxwhere_SalesOrderDetail_UnitPrice]))
WHERE UnitPrice > 2000
此时我们知道创建的非聚集过滤索引与传统创建的非聚集索引相比,我们的查询接近减少了一半。
唯一过滤索引
唯一过滤索引对于所有列必须唯一且不为空(只允许一个NULL存在)也是非常好的解决方案,所以此时在创建唯一过滤索引时需要将NULL值除外,比如如下:
CREATE UNIQUE NONCLUSTERED INDEX uq_fix_Customers_Email
ON Customers(Email)
WHERE Email IS NOT NULL
GO
过滤索引结合INCLUDE
当我们再添加一个额外列时,使用默认主键创建的聚集索引时,此时会走聚集索引扫描,然后我们在查询条件上创建一个过滤索引,我们强制使用这个过滤索引时,此时由于添加额外列,会导致需要返回到基表中再去获取数据,所以也就造成了Key Lookup查找,如下:
USE AdventureWorks2012
GO
SELECT SalesOrderDetailID, UnitPrice, UnitPriceDiscount
FROM Sales.SalesOrderDetail
WHERE UnitPrice > 2000
GO
此时我们需要用INCLUDE来包含额外列。
CREATE NONCLUSTERED INDEX [idx_SalesOrderDetail_UnitPrice] ON Sales.SalesOrderDetail(UnitPrice) INCLUDE(UnitPriceDiscount)
我们再创建一个过滤索引同时包括额外列
CREATE NONCLUSTERED INDEX [idxwhere_SalesOrderDetail_UnitPrice] ON Sales.SalesOrderDetail(UnitPrice) INCLUDE(UnitPriceDiscount)
WHERE UnitPrice > 2000
接下来再来执行比较添加过滤索引和未添加过滤索引同时都包括了额外列的性能查询差异。
SELECT SalesOrderDetailID, UnitPrice, UnitPriceDiscount
FROM AdventureWorks2012.Sales.SalesOrderDetail WITH(INDEX([idx_SalesOrderDetail_UnitPrice]))
WHERE UnitPrice > 2000
SELECT SalesOrderDetailID, UnitPrice, UnitPriceDiscount
FROM Sales.SalesOrderDetail WITH(INDEX([idxwhere_SalesOrderDetail_UnitPrice]))
WHERE UnitPrice > 2000
此时性能用INCLUDE来包含额外列性能也得到了一定的改善。
过滤索引,在主键上创建非聚集索引(2)
在第一个案列中,我们可以直接在查询列上创建非聚集索引,因为其类型是数字类型,要是查询条件是字符类型呢?首选现在我们先创建一个测试表
USE TSQL2012
GO
CREATE TABLE dbo.TestData
(
RowID integer IDENTITY NOT NULL,
SomeValue VARCHAR(max) NOT NULL,
StartDate date NOT NULL,
CONSTRAINT PK_Data_RowID
PRIMARY KEY CLUSTERED (RowID)
);
添加10万条测试数据
USE TSQL2012
GO
INSERT dbo.TestData WITH (TABLOCKX)
(SomeValue, StartDate)
SELECT
CAST(N.n AS VARCHAR(max)) + 'JeffckyWang',
DATEADD(DAY, (N.n - 1) % 31, '20140101')
FROM dbo.Nums AS N
WHERE
N.n >= 1
AND N.n < 100001;
如果我们需要获取表TestData中SomeValue = 'JeffckyWang',此时我们想要在SomeValue上创建一个非聚集索引然后进行过滤,如下
USE TSQL2012
GO
CREATE NONCLUSTERED INDEX idx_noncls_somevalue
ON dbo.TestData(SomeValue)
WHERE SomeValue = 'JeffckyWang'
更新
SQL Server对创建索引大小有限制,最大是900字节,上述直接写的VARCHAR(MAX),所以会出错,切记,切记。
此时我们在主键上创建非聚集索引,我们在主键RowID上创建一个过滤索引且SomeValue = 'JeffckyWang',然后返回数据,如下:
CREATE NONCLUSTERED INDEX idxwhere_noncls_somevalue
ON dbo.TestData(RowID)
WHERE SomeValue = 'JeffckyWang'
下面我们来对比建立过滤索引前后查询计划结果:
USE TSQL2012
GO
SELECT RowID, SomeValue, StartDate
FROM dbo.TestData WITH(INDEX([idx_pk_rowid]))
WHERE SomeValue = 'JeffckyWang'
SELECT RowID, SomeValue, StartDate
FROM dbo.TestData WITH(INDEX([idxwhere_noncls_somevalue]))
WHERE SomeValue = 'JeffckyWang'
然后结合之前所学,移除Key Lookup,对创建的过滤索引进行INCLUDE。
CREATE NONCLUSTERED INDEX [idxwhere_noncls_somevalue] ON dbo.TestData(RowID) INCLUDE(SomeValue,StartDate)
WHERE SomeValue = 'JeffckyWang'
从这里看出,无论是对查询条件创建过滤索引还是对主键创建过滤索引,我们都可以通过结合之前所学来提高查询性能。
我们从开头就一直在讲创建过滤索引,那么创建过滤索引优点的条件到底是什么?
(1)只能通过非聚集索引进行创建。
(2)如果在视图上创建过滤索引,此视图必须是持久化视图。
(3)不能在全文索引上创建过滤索引。
过滤索引的优点
(1)减少索引维护成本:对于增、删、改等操作不需要代价没有那么昂贵,因为一个过滤索引的重建不需要耗时太多时间。
(2)减少存储成本:过滤索引的存储占用空间很小。
(3)更精确的统计:通过在WHERE条件上创建过滤索引比全表统计结果更加精确。
(4)优化查询性能:通过查询计划可以看出其高效性。
讲到这里为止,一直陈述的是过滤索引的好处和优点,已经将其捧上天了,其实其缺点也是显而易见。
过滤索引缺点
最大的缺点则是查询条件的限制。其查询条件仅限于
::=
[ AND ]
::=
|
::=
column_name IN (constant ,...n)
过滤条件仅限于AND、|、IN。比较条件仅限于 { IS | IS NOT | = | <> | != | > | >= | !> | < | <= | !< },所以如下利用LIKE不行
CREATE NONCLUSTERED INDEX [idxwhere_noncls_somevalue] ON dbo.TestData(RowID) INCLUDE(SomeValue,StartDate)
WHERE SomeValue LIKE 'JeffckyWang%'
如下可以
USE AdventureWorks2012
GO
CREATE NONCLUSTERED INDEX idx_SalesOrderDetail_ModifiedDate
ON Sales.SalesOrderDetail(ModifiedDate)
WHERE ModifiedDate >= '2008-01-01' AND ModifiedDate <= '2008-01-07'
GO
如下却不行
CREATE NONCLUSTERED INDEX idx_SalesOrderDetail_ModifiedDate
ON Sales.SalesOrderDetail(ModifiedDate)
WHERE ModifiedDate = GETDATE()
GO
变量对过滤索引影响
上述我们创建过滤索引在查询条件上直接定义的字符串,如下:
CREATE NONCLUSTERED INDEX idxwhere_SalesOrderDetail_UnitPrice
ON Sales.SalesOrderDetail(UnitPrice)
WHERE UnitPrice > 1000
如果定义的是变量,利用变量来进行比较会如何呢?首先我们创建一个过滤索引
CREATE NONCLUSTERED INDEX idx_SalesOrderDetail_ProductID
ON Sales.SalesOrderDetail (ProductID)
WHERE ProductID = 870
利用变量来和查询条件比较,强制使用过滤索引(默认情况下走聚集索引)
USE AdventureWorks2012
GO
DECLARE @ProductID INT
SET @ProductID = 870
SELECT ProductID
FROM Sales.SalesOrderDetail WITH(INDEX([idx_SalesOrderDetail_ProductID]))
WHERE ProductID = @ProductID
查看查询执行计划结果却出错了,此时我们需要添加OPTION重新编译,如下:
USE AdventureWorks2012
GO
DECLARE @ProductID INT
SET @ProductID = 870
SELECT ProductID
FROM Sales.SalesOrderDetail
WHERE ProductID = @ProductID
OPTION(RECOMPILE)
上述利用变量来查询最后通过OPTION重新编译在SQL Server 2012中测试好使,至于其他版本未知,参考资料【The Pains of Filtered Indexes】。
总结
本节我们学习了通过过滤索引来提高查询性能,同时也给出了其不同的场景以及其使用优点和明显的缺点。简短的内容,深入的理解,我们下节再会,good night。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,同时也希望多多支持脚本之家!
你可能感兴趣的:(详解SQL Server的聚焦过滤索引)
Python中使用httpx模块详解
skydust1979
python
导入httpxIn [25]: import httpx获取一个网页In [26]: r = httpx.get("https://httpbin.org/get")In [27]: rOut[27]: 同样,发送HTTPPOST请求:In [28]: r = httpx.post("https://httpbin.org/post", data={"key": "value"})In [29]:
Dockerfile实战:从代码到容器的自动化构建
一碗黄焖鸡三碗米饭
Docker 技术之路 自动化 运维 docker
Dockerfile实战:从代码到容器的自动化构建在现代软件开发中,容器化技术已经成为了一种主流趋势,Docker更是其中的佼佼者。Docker为开发人员提供了一个高效的方式来构建、打包和运行应用程序。而Dockerfile则是Docker镜像构建过程中的核心,作为一份配置文件,Dockerfile让自动化构建Docker镜像成为可能。本文将通过一个实际的案例,深入讲解如何编写Dockerfile
【ESP8266】ESP8266集成开发环境对比
喵喵锤锤你小可爱
ESP8266
当涉及到ESP8266开发环境的选择时,有几个常见的选择可供开发人员使用。在本篇文章中,我们将对比一些目前最流行的ESP8266集成开发环境(IDE),以帮助您选择最适合您的需求的开发环境。总结:ArduinoIDE和PlatformIO集成开发环境使用起来最方便,官方的SDK用起来挺麻烦的,以前技小新好像讲过安信可的基于eclipse的IDE,也挺好用的(https://www.bilibili
Keil MDK Armcc6 总是全编译项目的问题
喵喵锤锤你小可爱
STM32 Keil stm32
我碰到的问题是因为使用lib库待代替原本的源码引起的,把lib库去除,使用源码编译就不会出现全编译的问题了。但是至于一定要使用LIB库但是又不想全编译暂时不知道怎么弄,具体为什么会这样暂不清楚。但是可以确定的是编译器参数可能选的不对,因为用EIDE还是使用Armcc6.19编译就没有这个问题EIDE编译就没问题
案例34在华为设备上配置访问控制列表
BinaryStarXin
交换机技术汇总 智能路由器 网络 运维 华为设备上配置访问控制列表 ACL的基本原理 网络协议 信息与通信
访问控制列表简书1.ACL的基本原理访问控制列表(AccessControlList,ACL)使用包过滤技术,在路由器上读取第三层及第四层包头中的信息,如源地址、目的地址、源端口、目的端口等信息,根据预先定义好的规则对包进行过滤,从而达到访问控制的目的。2.ACL的功能网络中的节点包括资源节点和用户节点两类,其中资源节点提供服务或数据,用户节点访问资源节点所提供的服务与数据。ACL的主要功能就是一
FFT去除频率分量的完整流程与数学分析
喵喵锤锤你小可爱
python FFT 数字滤波器 通信
FFT去除频率分量的完整流程与数学分析1.FFT处理的分段本质FFT确实是处理离散时间信号的,一般是对一段采样数据进行分析。在实际应用中,通常会将连续的信号分段处理。每段信号称为“帧”或“窗口”,每帧信号的长度为固定的$N$点。2.如何保证输出的连续性?关键方法a)重叠处理(Overlap)原理:对输入信号分段时,相邻数据块部分重叠(例如50%重叠)。假设块长度为1024,每次新块保留前512点,
云计算相关工作岗位有哪些,薪资怎么样?
欧米说云
云计算 腾讯云 阿里云 云计算
云计算、大数据、人工智能作为新一代信息技术产业,未来发展前景不可估量,就业前途一片光明,自然薪资待遇也不会差。随着亚马逊云、阿里云、华为云等云厂商的快速发展,也产生了大量的岗位需求,同时厂商为了增强自身影响力,也设置了很多证书考试,acp、ace、hcip、hcie等等。在这里想进入相关行业大厂从事云相关的工作的同学可以先考取大厂的对应证书,增加自己简历含金量,从而进入大厂。免费领取阿里云华为认证
IDEA提示将方法形参更改为(什么什么类型),要检查对应的实体类中的字段类型是否正确
小丁学Java
产品资质管理系统 jpa
IDEA提示inviteCodeId应该是字符串,明显不对,后来检查发现是FakeRegistration类中把inviteCodeId定义为String类型了。
云计算 | 截止2022年现行云计算相关国家标准汇总
摄魂小怪兽
云计算
截止2022年现行云计算相关国家标准汇总,详见下表。序号标准编号标准名称实施日期归口单位1GB/T40690-2021信息技术云计算云际计算参考架构2022-05-01全国信息技术标准化技术委员会2GB/T33780.4-2021基于云计算的电子政务公共平台技术规范第4部分:操作系统2021-11-01工业和信息化部(通信)3GB/T33780.5-2021基于云计算的电子政务公共平台技术规范第5
cursor 弹出在签出前,请清理仓库工作树 窗口
小丁学Java
cursor cursor
问题出现的背景:是因为我有两台电脑开发,提交后,另一个电脑的代码是旧的,这个时候我想拉取最新的代码,就会出现如下弹窗,因为这个代码暂存区有记录或者工作区有代码的修改,所以有冲突,我们只需要舍弃旧代码的记录,执行gitreset--hard以撤销所有未提交的更改。从图片来看,这是一个错误提示窗口,提示“在签出前,请清理仓库工作树。”这通常发生在你尝试使用Git进行签出(checkout)操作时,当前
wx.uploadFile上传图片失败
小丁学Java
微信小程序WxMa notepad++
文章目录微信小程序后台配置`uploadFile`合法域名的正确步骤步骤1:登录小程序后台步骤2:导航到服务器域名配置页面步骤3:添加`uploadFile`合法域名步骤4:验证配置是否生效注意事项常见问题解答总结微信小程序后台配置uploadFile合法域名的正确步骤在微信小程序开发中,正确配置uploadFile合法域名是使用wx.uploadFileAPI上传文件的前提。以下是按照您指定的路
ave-form.vue 组件中 如何将产品名称发送给后端 ?
小丁学Java
产品资质管理系统 前端
如何将产品名称发送给后端。在这段代码中,产品名称(productName)的处理和发送主要发生在save()方法中。让我逐步分析:产品ID的选择:在表单中,用户通过下拉框选择产品,这里的v-model="form.productId"会绑定所选产品的id到form.productId。:list="productList"是产品列表数据,来自getProducts()方法从后端获取的。option
SSL/TLS 协议、SSL证书 和 SSH协议 的区别和联系
小丁学Java
计算机网络 ssl ssh 网络协议
下面是SSL/TLS协议、SSL证书和SSH协议的区别和联系,包含它们的英文全称和中文全称:属性SSL/TLS协议SSL证书SSH协议英文全称SecureSocketsLayer/TransportLayerSecuritySecureSocketsLayerCertificateSecureShellProtocol中文全称安全套接字层/传输层安全协议安全套接字层证书安全外壳协议定义SSL/TL
Mac电脑用Latex论文排版3天速成5天实战de笔记
荔枝要赚大钱的luu(养成系)
macos 笔记 论文笔记
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言论文常用1.摘要2.页码3.目录与章节4.单图5.多图6.最基本的三线格7.复杂表格8.数学公式$\[...\]公式块9.伪代码10.无序圆点11.引用12.参考文献13.附录与代码14.分页符15.零碎的细节遇到困难总结前言我后悔了,这五天竞赛搞得我视力都下降了...一个冲动的决定后成为数模竞赛论文写手,3天速成+5天时
paddlepaddle(飞浆)报错name ‘libpaddle‘ is not defined及paddle.fluid.core_noavx
管春
数据分析 paddlepaddle paddle 人工智能
最近有一个OCR中文识别的需求,用到paddleocr,但服务器死活装不上paddlepaddle(python3.10.4,win8环境)先装了2.6.0的paddele,报name‘libpaddle’isnotdefined,然后降版本(2.4的某个版本,忘了),paddle.fluid.core_noavximport失败,发现服务器没有avx,这个版本不支持noavx的,去paddlep
【llm对话系统】 LLM 大模型推理python实现:vLLM 框架
kakaZhui
人工智能 AIGC chatgpt python llama
在LLM的应用中,推理(Inference)阶段至关重要。它指的是利用训练好的LLM模型,根据输入(Prompt)生成文本的过程。然而,LLM的推理速度往往较慢,尤其是在处理长序列或高并发请求时,效率瓶颈尤为突出。为了解决这个问题,vLLM应运而生!vLLM是一个专为LLM设计的高吞吐、低延迟的推理和服务引擎,它能够显著提升LLM的推理速度,让你的应用如虎添翼!今天,我们就来一起探索vLLM的奥秘
OSPF与RIP的路由引入
Ramphastos1101
数通基础 网络
#交换设备路由引入不同的网络会根据自身的实际情况来选用路由协议。比如有些网络规模很小,为了管理简单,部署了RIP;而有些网络很复杂,可以部署OSPF。不同路由协议之间不能直接共享各自的路由信息,需要依靠配置路由的引入来实现。获得路由信息一般有3种途径:直连网段、静态配置和路由协议。可以将通过这3种途径获得的路由信息引入到路由协议中,例如,把直连网段引入到OSPF中,叫做“引入直连”;把静态路由引入
关于解决shell脚本中无法用cd命令,在指定文件下运行指定文件的解决方法分享
Ramphastos1101
php linux 服务器 bash
本人以编写shell脚本,一键安装配置php7.3为例前提:本脚本在Linux/opt/目录下运行首先解压php压缩包######配置nginx,带lua支持#################################################tar-zxvf/opt/php-7.3.30.tar.gzif[$?-eq0];thenecho`date"+%y-%m-%d%H:%M:%S
通俗易懂的一致性哈希原理
eternity_zzy
java java
一致性哈希(Consistenthashing)算法是由MIT的Karger等人与1997年在一篇学术论文(《Consistenthashingandrandomtrees:distributedcachingprotocolsforrelievinghotspotsontheWorldWideWeb》)中提出来的,用于解决分布式缓存数据分布问题。在传统的哈希算法下,每条缓存数据落在那个节点是通过
Python小实验——归结反演
我没得冰阔落.
人工智能 python 人工智能
实验目的打印所有互补文字;头现命题逻辑简单归结;实验内容及结果#归结反演过程,传入外面最大的数组里面的两个小数组,也就是两个子句,消掉对应的谓词公式defresult(m=[],n=[]):after=0whilelen(m)!=after:after=len(m)foriinm:forjinn:if(
卷积这个词在卷积神经网络中应该怎么理解
abments
人工智能 cnn 深度学习 计算机视觉
卷积的定义数学概念:在数学上,卷积是一种操作,通常用于两个函数之间的运算。对于图像处理而言,这些函数通常是输入图像和一个称为“卷积核”或“滤波器”的小矩阵。在CNN中的应用:卷积操作是通过滑动窗口(卷积核)与输入数据进行点乘并求和来提取特征的。具体步骤定义卷积核:一个卷积核是一个小矩阵,通常为3x3、5x5等尺寸。卷积核中的每个值称为权重(weights),这些权重是通过训练过程优化得到的。滑动窗
卷积核在初始阶段的数据是怎么获取的
abments
人工智能 深度学习 人工智能
卷积核的初始化随机初始化:在大多数情况下,卷积核(滤波器)的权重在模型训练开始时是随机初始化的。常用的随机初始化方法包括以下几种:均匀分布初始化:权重从一个均匀分布中抽取值。importnumpyasnp#初始化3x3卷积核,权重范围[-0.1,0.1]kernel=np.random.uniform(-0.1,0.1,(3,3))正态分布初始化:权重从一个均值为0、标准差较小的正态分布中抽取。i
解析Linux中的系统安全及应用(二)
石头城云计算笔记
Linux su命令切换用户 sudo机制提升权限 PAM安全认证 网络端口扫描 弱口令检测
各位小伙伴大家好,本次和大家分享的是Linux系统中的系统安全及应用的相关理论知识及操作。我将通过以下几点和相关的实验进行分析说明:(接上篇)五.使用su命令切换用户:1、用途及方法用途:SubstituteUser,切换用户格式:su-目标用户(bash环境)2、密码验证root→任意用户,不验证密码普通用户→其他用户,验证目标用户的密码[jerry@localhost~]$su-root(带-
Node.js 内置模块简介(带示例)
浪九天
node.js node.js 开发语言 前端
目录1.fs(文件系统)模块2.http模块3.path模块4.os模块5.events模块6.crypto模块1.fs(文件系统)模块fs模块提供了与文件系统进行交互的功能,包括文件的读写、删除、重命名等操作。它有同步和异步两种操作方式,异步操作能避免阻塞事件循环,在处理大量文件或高并发场景中更常用。示例:异步读取文件内容constfs=require('fs');//异步读取文件fs.read
Node.js学习01-初识Node.js与内置模块
Meowmow
nodejs node.js 学习 javascript
目录初识Node.js在Node.js环境执行js代码内置模块fs文件系统模块路径动态拼接问题path路径模块http模块request请求对象初识Node.jsNode.js是基于ChromeV8引擎的JavaScript运行环境,无法调用DOM和BOM等浏览器内置API。使用Node.js可以:基于Express框架快速搭建web应用基于Electron框架构建跨平台的桌面应用基于restif
云计算如何助力金融科技企业实现高效运营
易通慧谷
互联金融 云计算 金融 科技
一、引言随着信息技术的飞速发展,云计算作为一种新兴的计算模式,正在逐渐改变着传统金融行业的运营模式。金融科技企业作为金融行业的重要组成部分,面临着日益增长的业务需求和技术挑战。在这一背景下,云计算凭借其弹性扩展、高可用性、低成本等优势,成为金融科技企业实现高效运营的重要工具。本文将从云计算的定义、特点出发,探讨云计算如何助力金融科技企业实现高效运营,并分析其面临的挑战和未来发展趋势。二、云计算概述
[C#]C#移动文件报错完全限定文件名必须少于 260 个字符,并且目录名必须少于 248 个字符
FL1623863129
C# c# 开发语言
C#使用File.Move会报错:错误信息:Thespecifiedpath,filename,orbotharetoolong.Thefullyqualifiedfilenamemustbelessthan260characters,andthedirectorynamemustbelessthan248characters.大概的意思就是:指定的路径或文件名太长,或者两者都太长。完全限定文件名
Python vLLM 实战应用指南
ghostwritten
python python 开发语言
文章目录1.vLLM简介2.安装vLLM3.快速开始3.1加载模型并生成文本3.2参数说明4.实战应用场景4.1构建聊天机器人示例对话:4.2文本补全输出示例:4.3自定义模型服务启动服务调用服务5.性能优化5.1GPU加速5.2动态批处理6.总结vLLM是一种高性能的开源深度学习推理引擎,专注于高效的生成式模型推理任务。它通过动态批处理和内存优化技术大幅提高了大模型(如GPT系列)的推理性能,非
python学习笔记——三元操作符
面向对象的邓老凉茶
python
三元操作符三元操作符的基本格式为:result=xifx<yelsey其中,x<y为判断语句。若x<y为真则result=x,否则result=y。
量子计算在材料科学中的应用:开辟新技术前沿
Echo_Wish
人工智能 前沿技术 量子计算
量子计算在材料科学中的应用:开辟新技术前沿近年来,量子计算作为一项革命性的技术,逐渐在多个领域展现出巨大的潜力,尤其是在材料科学中的应用,展现了超越经典计算机的能力。量子计算能够通过量子比特(qubit)同时处理多个状态,在处理复杂计算任务时,速度和效率远超传统计算机。对于材料科学来说,量子计算提供了一种全新的视角,能够在分子和原子层面进行更为精确的模拟,从而加速新材料的发现和优化。作为一名自媒体
Maven
Array_06
eclipse jdk maven
Maven
Maven是基于项目对象模型(POM), 信息来管理项目的构建,报告和文档的软件项目管理工具。
Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司
ibatis的queyrForList和queryForMap区别
bijian1013
java ibatis
一.说明
iBatis的返回值参数类型也有种:resultMap与resultClass,这两种类型的选择可以用两句话说明之:
1.当结果集列名和类的属性名完全相对应的时候,则可直接用resultClass直接指定查询结果类
LeetCode[位运算] - #191 计算汉明权重
Cwind
java 位运算 LeetCode Algorithm 题解
原题链接:#191 Number of 1 Bits
要求:
写一个函数,以一个无符号整数为参数,返回其汉明权重。例如,‘11’的二进制表示为'00000000000000000000000000001011', 故函数应当返回3。
汉明权重:指一个字符串中非零字符的个数;对于二进制串,即其中‘1’的个数。
难度:简单
分析:
将十进制参数转换为二进制,然后计算其中1的个数即可。
“
浅谈java类与对象
15700786134
java
java是一门面向对象的编程语言,类与对象是其最基本的概念。所谓对象,就是一个个具体的物体,一个人,一台电脑,都是对象。而类,就是对象的一种抽象,是多个对象具有的共性的一种集合,其中包含了属性与方法,就是属于该类的对象所具有的共性。当一个类创建了对象,这个对象就拥有了该类全部的属性,方法。相比于结构化的编程思路,面向对象更适用于人的思维
linux下双网卡同一个IP
被触发
linux
转自:
http://q2482696735.blog.163.com/blog/static/250606077201569029441/
由于需要一台机器有两个网卡,开始时设置在同一个网段的IP,发现数据总是从一个网卡发出,而另一个网卡上没有数据流动。网上找了下,发现相同的问题不少:
一、
关于双网卡设置同一网段IP然后连接交换机的时候出现的奇怪现象。当时没有怎么思考、以为是生成树
安卓按主页键隐藏程序之后无法再次打开
肆无忌惮_
安卓
遇到一个奇怪的问题,当SplashActivity跳转到MainActivity之后,按主页键,再去打开程序,程序没法再打开(闪一下),结束任务再开也是这样,只能卸载了再重装。而且每次在Log里都打印了这句话"进入主程序"。后来发现是必须跳转之后再finish掉SplashActivity
本来代码:
// 销毁这个Activity
fin
通过cookie保存并读取用户登录信息实例
知了ing
JavaScript html
通过cookie的getCookies()方法可获取所有cookie对象的集合;通过getName()方法可以获取指定的名称的cookie;通过getValue()方法获取到cookie对象的值。另外,将一个cookie对象发送到客户端,使用response对象的addCookie()方法。
下面通过cookie保存并读取用户登录信息的例子加深一下理解。
(1)创建index.jsp文件。在改
JAVA 对象池
矮蛋蛋
java ObjectPool
原文地址:
http://www.blogjava.net/baoyaer/articles/218460.html
Jakarta对象池
☆为什么使用对象池
恰当地使用对象池化技术,可以有效地减少对象生成和初始化时的消耗,提高系统的运行效率。Jakarta Commons Pool组件提供了一整套用于实现对象池化
ArrayList根据条件+for循环批量删除的方法
alleni123
java
场景如下:
ArrayList<Obj> list
Obj-> createTime, sid.
现在要根据obj的createTime来进行定期清理。(释放内存)
-------------------------
首先想到的方法就是
for(Obj o:list){
if(o.createTime-currentT>xxx){
阿里巴巴“耕地宝”大战各种宝
百合不是茶
平台战略
“耕地保”平台是阿里巴巴和安徽农民共同推出的一个 “首个互联网定制私人农场”,“耕地宝”由阿里巴巴投入一亿 ,主要是用来进行农业方面,将农民手中的散地集中起来 不仅加大农民集体在土地上面的话语权,还增加了土地的流通与 利用率,提高了土地的产量,有利于大规模的产业化的高科技农业的 发展,阿里在农业上的探索将会引起新一轮的产业调整,但是集体化之后农民的个体的话语权 将更少,国家应出台相应的法律法规保护
Spring注入有继承关系的类(1)
bijian1013
java spring
一个类一个类的注入
1.AClass类
package com.bijian.spring.test2;
public class AClass {
String a;
String b;
public String getA() {
return a;
}
public void setA(Strin
30岁转型期你能否成为成功人士
bijian1013
成功
很多人由于年轻时走了弯路,到了30岁一事无成,这样的例子大有人在。但同样也有一些人,整个职业生涯都发展得很优秀,到了30岁已经成为职场的精英阶层。由于做猎头的原因,我们接触很多30岁左右的经理人,发现他们在职业发展道路上往往有很多致命的问题。在30岁之前,他们的职业生涯表现很优秀,但从30岁到40岁这一段,很多人
[Velocity三]基于Servlet+Velocity的web应用
bit1129
velocity
什么是VelocityViewServlet
使用org.apache.velocity.tools.view.VelocityViewServlet可以将Velocity集成到基于Servlet的web应用中,以Servlet+Velocity的方式实现web应用
Servlet + Velocity的一般步骤
1.自定义Servlet,实现VelocityViewServl
【Kafka十二】关于Kafka是一个Commit Log Service
bit1129
service
Kafka is a distributed, partitioned, replicated commit log service.这里的commit log如何理解?
A message is considered "committed" when all in sync replicas for that partition have applied i
NGINX + LUA实现复杂的控制
ronin47
lua nginx 控制
安装lua_nginx_module 模块
lua_nginx_module 可以一步步的安装,也可以直接用淘宝的OpenResty
Centos和debian的安装就简单了。。
这里说下freebsd的安装:
fetch http://www.lua.org/ftp/lua-5.1.4.tar.gz
tar zxvf lua-5.1.4.tar.gz
cd lua-5.1.4
ma
java-14.输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字
bylijinnan
java
public class TwoElementEqualSum {
/**
* 第 14 题:
题目:输入一个已经按升序排序过的数组和一个数字,
在数组中查找两个数,使得它们的和正好是输入的那个数字。
要求时间复杂度是 O(n) 。如果有多对数字的和等于输入的数字,输出任意一对即可。
例如输入数组 1 、 2 、 4 、 7 、 11 、 15 和数字 15 。由于
Netty源码学习-HttpChunkAggregator-HttpRequestEncoder-HttpResponseDecoder
bylijinnan
java netty
今天看Netty如何实现一个Http Server
org.jboss.netty.example.http.file.HttpStaticFileServerPipelineFactory:
pipeline.addLast("decoder", new HttpRequestDecoder());
pipeline.addLast(&quo
java敏感词过虑-基于多叉树原理
cngolon
违禁词过虑 替换违禁词 敏感词过虑 多叉树
基于多叉树的敏感词、关键词过滤的工具包,用于java中的敏感词过滤
1、工具包自带敏感词词库,第一次调用时读入词库,故第一次调用时间可能较长,在类加载后普通pc机上html过滤5000字在80毫秒左右,纯文本35毫秒左右。
2、如需自定义词库,将jar包考入WEB-INF工程的lib目录,在WEB-INF/classes目录下建一个
utf-8的words.dict文本文件,
多线程知识
cuishikuan
多线程
T1,T2,T3三个线程工作顺序,按照T1,T2,T3依次进行
public class T1 implements Runnable{
@Override
 
spring整合activemq
dalan_123
java spring jms
整合spring和activemq需要搞清楚如下的东东1、ConnectionFactory分: a、spring管理连接到activemq服务器的管理ConnectionFactory也即是所谓产生到jms服务器的链接 b、真正产生到JMS服务器链接的ConnectionFactory还得
MySQL时间字段究竟使用INT还是DateTime?
dcj3sjt126com
mysql
环境:Windows XPPHP Version 5.2.9MySQL Server 5.1
第一步、创建一个表date_test(非定长、int时间)
CREATE TABLE `test`.`date_test` (`id` INT NOT NULL AUTO_INCREMENT ,`start_time` INT NOT NULL ,`some_content`
Parcel: unable to marshal value
dcj3sjt126com
marshal
在两个activity直接传递List<xxInfo>时,出现Parcel: unable to marshal value异常。 在MainActivity页面(MainActivity页面向NextActivity页面传递一个List<xxInfo>): Intent intent = new Intent(this, Next
linux进程的查看上(ps)
eksliang
linux ps linux ps -l linux ps aux
ps:将某个时间点的进程运行情况选取下来
转载请出自出处:http://eksliang.iteye.com/admin/blogs/2119469
http://eksliang.iteye.com
ps 这个命令的man page 不是很好查阅,因为很多不同的Unix都使用这儿ps来查阅进程的状态,为了要符合不同版本的需求,所以这个
为什么第三方应用能早于System的app启动
gqdy365
System
Android应用的启动顺序网上有一大堆资料可以查阅了,这里就不细述了,这里不阐述ROM启动还有bootloader,软件启动的大致流程应该是启动kernel -> 运行servicemanager 把一些native的服务用命令启动起来(包括wifi, power, rild, surfaceflinger, mediaserver等等)-> 启动Dalivk中的第一个进程Zygot
App Framework发送JSONP请求(3)
hw1287789687
jsonp 跨域请求 发送jsonp ajax请求 越狱请求
App Framework 中如何发送JSONP请求呢?
使用jsonp,详情请参考:http://json-p.org/
如何发送Ajax请求呢?
(1)登录
/***
* 会员登录
* @param username
* @param password
*/
var user_login=function(username,password){
// aler
发福利,整理了一份关于“资源汇总”的汇总
justjavac
资源
觉得有用的话,可以去github关注:https://github.com/justjavac/awesome-awesomeness-zh_CN 通用
free-programming-books-zh_CN 免费的计算机编程类中文书籍
精彩博客集合 hacke2/hacke2.github.io#2
ResumeSample 程序员简历
用 Java 技术创建 RESTful Web 服务
macroli
java 编程 Web REST
转载:http://www.ibm.com/developerworks/cn/web/wa-jaxrs/
JAX-RS (JSR-311) 【 Java API for RESTful Web Services 】是一种 Java™ API,可使 Java Restful 服务的开发变得迅速而轻松。这个 API 提供了一种基于注释的模型来描述分布式资源。注释被用来提供资源的位
CentOS6.5-x86_64位下oracle11g的安装详细步骤及注意事项
超声波
oracle linux
前言:
这两天项目要上线了,由我负责往服务器部署整个项目,因此首先要往服务器安装oracle,服务器本身是CentOS6.5的64位系统,安装的数据库版本是11g,在整个的安装过程中碰到很多的坑,不过最后还是通过各种途径解决并成功装上了。转别写篇博客来记录完整的安装过程以及在整个过程中的注意事项。希望对以后那些刚刚接触的菜鸟们能起到一定的帮助作用。
安装过程中可能遇到的问题(注
HttpClient 4.3 设置keeplive 和 timeout 的方法
supben
httpclient
ConnectionKeepAliveStrategy kaStrategy = new DefaultConnectionKeepAliveStrategy() {
@Override
public long getKeepAliveDuration(HttpResponse response, HttpContext context) {
long keepAlive
Spring 4.2新特性-@Import注解的升级
wiselyman
spring 4
3.1 @Import
@Import注解在4.2之前只支持导入配置类
在4.2,@Import注解支持导入普通的java类,并将其声明成一个bean
3.2 示例
演示java类
package com.wisely.spring4_2.imp;
public class DemoService {
public void doSomethin