SQL2008 数据库优化

64位Win10系统下Navicat连接SQL Server 2008配置指南 Navicat 的核心功能包括但不限于以下几点:功能模块描述数据库连接支持连接多种数据库类型,包括本地与远程数据库查询构建器提供可视化查询构建工具,帮助用户编写复杂 SQL数据同步支持不同数据库之间的结构与数据同步数据建模图形化设计数据库结构,支持正向与逆向工程报表生成提供可视化报表生成工具,支持导出为 PDF、Excel 等格式安全管理支持用户权限管理、SSL 加密连接等安全特性自动化任务。 阅读详情

文章转载;http://www.codesky.net/article/201007/145308.html

SQL Server 性能调优:

1、 用程序中,保证在实现功能的基础上,尽量减少对数据库的访问次数;通过搜索参数,尽量减少对表的访问行数,最小化结果集,从而减轻网络负担;能够分开的操作尽量分开处理,提高每次的响应速度;在数据窗口使用SQL时,尽量把使用的索引放在选择的首列;算法的结构尽量简单;在查询时,不要过多地使用通配符如SELECT * FROM T1语句,要用到几列就选择几列如:SELECT COL1,COL2 FROM T1;在可能的情况下尽量限制尽量结果集行数如:

 
  1. SELECT TOP 300 COL1,COL2,COL3 FROM T1, 

因为某些情况下用户是不需要那么多的数据的。不要在应用中使用数据库游标,游标是非常有用的工具,但比使用常规的、面向集的SQL语句需要更大的开销;按照特定顺序提取数据的查找。

SQL Server 性能调优2、 避免使用不兼容的数据类型。例如float和int、char和varchar、binary和varbinary是不兼容的。数据类型的不兼容可能使优化器无法执行一些本来可以进行的优化操作。例如:

 
  1. SELECT name FROM employee WHERE salary > 60000  

在这条语句中,如salary字段是money型的,则优化器很难对其进行优化,因为60000是个整型数。我们应当在编程时将整型转化成为钱币型,而不要等到运行时转化。

SQL Server 性能调优3、 尽量避免在WHERE子句中对字段进行函数或表达式操作,这将导致引擎放弃使用索引而进行全表扫描。如:

 
  1. SELECT * FROM T1 WHERE F1/2=100 

应改为:

 
  1. SELECT * FROM T1 WHERE F1=100*2  
  2. SELECT * FROM RECORD WHERE SUBSTRING(CARD_NO,1,4)=’5378’  

应改为:

 
  1. SELECT * FROM RECORD WHERE CARD_NO LIKE ‘5378%’  
  2. SELECT member_number, first_name, last_name FROM members  
  3. WHERE DATEDIFF(yy,datofbirth,GETDATE()) > 21  

应改为:

 
  1. SELECT member_number, first_name, last_name FROM members  
  2. WHERE dateofbirth < DATEADD(yy,-21,GETDATE()) 

即:任何对列的操作都将导致表扫描,它包括数据库函数、计算表达式等等,查询时要尽可能将操作移至等号右边。

SQL Server 性能调优4、 避免使用!=或<>、IS NULL或IS NOT NULL、IN ,NOT IN等这样的操作符,因为这会使系统无法使用索引,而只能直接搜索表中的数据。例如:

 
  1. SELECT id FROM employee WHERE id != 'B%'  

优化器将无法通过索引来确定将要命中的行数,因此需要搜索该表的所有行。

SQL Server 性能调优5、 尽量使用数字型字段,一部分开发人员和数据库管理人员喜欢把包含数值信息的字段

设计为字符型,这会降低查询和连接的性能,并会增加存储开销。这是因为引擎在处理查询和连接回逐个比较字符串中每一个字符,而对于数字型而言只需要比较一次就够了。

SQL Server 性能调优6、 合理使用EXISTS,NOT EXISTS子句。如下所示:

1.

 
  1. SELECT SUM(T1.C1)FROM T1 WHERE(  
  2. (SELECT COUNT(*)FROM T2 WHERE T2.C2=T1.C2>0) 

2.

 
  1. SELECT SUM(T1.C1) FROM T1WHERE EXISTS(  
  2. SELECT * FROM T2 WHERE T2.C2=T1.C2) 

两者产生相同的结果,但是后者的效率显然要高于前者。因为后者不会产生大量锁定的表扫描或是索引扫描。

如果你想校验表里是否存在某条纪录,不要用count(*)那样效率很低,而且浪费服务器资源。可以用EXISTS代替。如:

 
  1. IF (SELECT COUNT(*) FROM table_name WHERE column_name = 'xxx') 

可以写成:

 
  1. IF EXISTS (SELECT * FROM table_name WHERE column_name = 'xxx') 

经常需要写一个T_SQL语句比较一个父结果集和子结果集,从而找到是否存在在父结果集中有而在子结果集中没有的记录,如:

1.SELECT a.hdr_key FROM hdr_tbl a---- tbl a 表示tbl用别名a代替

 
  1. WHERE NOT EXISTS (SELECT * FROM dtl_tbl b WHERE a.hdr_key = b.hdr_key)  

2.

 
  1. SELECT a.hdr_key FROM hdr_tbl a  
  2. LEFT JOIN dtl_tbl b ON a.hdr_key = b.hdr_key WHERE b.hdr_key IS NULL  

3.

 
  1. SELECT hdr_key FROM hdr_tbl  
  2. WHERE hdr_key NOT IN (SELECT hdr_key FROM dtl_tbl)  

三种写法都可以得到同样正确的结果,但是效率依次降低。

SELECT id FROM employee WHERE id != 'B%' 7、 尽量避免在索引过的字符数据中,使用非打头字母搜索。这也使得引擎无法利用索引。

见如下例子:

 
  1. SELECT * FROM T1 WHERE NAME LIKE ‘%L%’  
  2. SELECT * FROM T1 WHERE SUBSTING(NAME,2,1)=’L’  
  3. SELECT * FROM T1 WHERE NAME LIKE ‘L%’ 

即使NAME字段建有索引,前两个查询依然无法利用索引完成加快操作,引擎不得不对全表所有数据逐条操作来完成任务。而第三个查询能够使用索引来加快操作。

8、 分利用连接条件,在某种情况下,两个表之间可能不只一个的连接条件,这时在 WHERE 子句中将连接条件完整的写上,有可能大大提高查询速度。

例:

 
  1. SELECT SUM(A.AMOUNT) FROM ACCOUNT A,CARD B WHERE A.CARD_NO = B.CARD_NO   
  2. SELECT SUM(A.AMOUNT) FROM ACCOUNT A,CARD B WHERE A.CARD_NO = B.CARD_NO AND A.ACCOUNT_NO=B.ACCOUNT_NO 

第二句将比第一句执行快得多。

SELECT id FROM employee WHERE id != 'B%' 9、 消除对大型表行数据的顺序存取

尽管在所有的检查列上都有索引,但某些形式的WHERE子句强迫优化器使用顺序存取。如:

 
  1. SELECT * FROM orders WHERE (customer_num=104 AND order_num>1001) OR   
  2. order_num=1008 

解决办法可以使用并集来避免顺序存取:

 
  1. SELECT * FROM orders WHERE customer_num=104 AND order_num>1001   
  2. UNION   
  3. SELECT * FROM orders WHERE order_num=1008  

这样就能利用索引路径处理查询。

10、 避免困难的正规表达式

LIKE关键字支持通配符匹配,技术上叫正规表达式。但这种匹配特别耗费时间。例如:SELECT * FROM customer WHERE zipcode LIKE “98_ _ _”

即使在zipcode字段上建立了索引,在这种情况下也还是采用顺序扫描的方式。如

果把语句改为SELECT * FROM customer WHERE zipcode >“98000”,在执行查询

时就会利用索引来查询,显然会大大提高速度。


11、 使用视图加速查询

把表的一个子集进行排序并创建视图,有时能加速查询。它有助于避免多重排序

操作,而且在其他方面还能简化优化器的工作。例如:

 
  1. SELECT cust.name,rcvbles.balance,……other columns   
  2. FROM cust,rcvbles   
  3. WHERE cust.customer_id = rcvlbes.customer_id   
  4. AND rcvblls.balance>0   
  5. AND cust.postcode>“98000”   
  6. ORDER BY cust.name  

如果这个查询要被执行多次而不止一次,可以把所有未付款的客户找出来放在一个

视图中,并按客户的名字进行排序:

 
  1. CREATE VIEW DBO.V_CUST_RCVLBES  
  2. AS   
  3. SELECT cust.name,rcvbles.balance,……other columns   
  4. FROM cust,rcvbles   
  5. WHERE cust.customer_id = rcvlbes.customer_id   
  6. AND rcvblls.balance>0   
  7. ORDER BY cust.name  

然后以下面的方式在视图中查询:

 
  1. SELECT * FROM V_CUST_RCVLBES  
  2. WHERE postcode>“98000”  

视图中的行要比主表中的行少,而且物理顺序就是所要求的顺序,减少了磁盘

I/O,所以查询工作量可以得到大幅减少。

SELECT id FROM employee WHERE id != 'B%' 12、 能够用BETWEEN的就不要用IN

 
  1. SELECT * FROM T1 WHERE ID IN (10,11,12,13,14) 

改成:

 
  1. SELECT * FROM T1 WHERE ID BETWEEN 10 AND 14 

因为IN会使系统无法使用索引,而只能直接搜索表中的数据。

13、 DISTINCT的就不用GROUP BY

 
  1. SELECT OrderID FROM Details WHERE UnitPrice > 10 GROUP BY OrderID 

可改为:

 
  1. SELECT DISTINCT OrderID FROM Details WHERE UnitPrice > 10 

14、 部分利用索引

1.

 
  1. SELECT employeeID, firstname, lastname  
  2. FROM names  
  3. WHERE dept = 'prod' or city = 'Orlando' or division = 'food' 

2.

 
  1. SELECT employeeID, firstname, lastname FROM names WHERE dept = 'prod' 
  2. UNION ALL  
  3. SELECT employeeID, firstname, lastname FROM names WHERE city = 'Orlando' 
  4. UNION ALL  
  5. SELECT employeeID, firstname, lastname FROM names WHERE division = 'food' 

如果dept 列建有索引则查询2可以部分利用索引,查询1则不能。

15、 能用UNION ALL就不要用UNION

UNION ALL不执行SELECT DISTINCT函数,这样就会减少很多不必要的资源

16、 不要写一些不做任何事的查询

如:

 
  1. SELECT COL1 FROM T1 WHERE 1=0 
  2. SELECT COL1 FROM T1 WHERE COL1=1 AND COL1=2 

这类死码不会返回任何结果集,但是会消耗系统资源。

17、 尽量不要用SELECT INTO语句。

SELECT INOT 语句会导致表锁定,阻止其他用户访问该表。

18、 必要时强制查询优化器使用某个索引

 
  1. SELECT * FROM T1 WHERE nextprocess = 1 AND processid IN (8,32,45)  

改成:

 
  1. SELECT * FROM T1 (INDEX = IX_ProcessID) WHERE nextprocess = 1 AND processid IN (8,32,45) 

则查询优化器将会强行利用索引IX_ProcessID 执行查询。

SELECT id FROM employee WHERE id != 'B%' 19、 虽然UPDATE、DELETE语句的写法基本固定,但是还是对UPDATE语句给点建议:

a) 尽量不要修改主键字段。

b) 当修改VARCHAR型字段时,尽量使用相同长度内容的值代替。

c) 尽量最小化对于含有UPDATE触发器的表的UPDATE操作。

d) 避免UPDATE将要复制到其他数据库的列。

e) 避免UPDATE建有很多索引的列。

f) 避免UPDATE在WHERE子句条件中的列。

上面我们提到的是一些基本的提高查询速度的注意事项,但是在更多的情况下,往往需要反复试验比较不同的语句以得到最佳方案。最好的方法当然是测试,看实现相同功能的SQL语句哪个执行时间最少,但是数据库中如果数据量很少,是比较不出来的,这时可以用查看执行计划,即:把实现相同功能的多条SQL语句考到查询分析器,按CTRL+L看查所利用的索引,表扫描次数(这两个对性能影响最大),总体上看询成本百分比即可。

简单的存储过程可以用向导自动生成:在企业管理器工具栏点击运行向导图标,点击”数据库”、”创建存储过程向导”。复杂存储过程的调试:在查询分析器左边的对象浏览器(没有?按F8)选择要调试的存储过程,点右键,点调试,输入参数执行,出现一个浮动工具条,上面有单步执行,断点设置等。

SQLserver2008 数据库性能优化 超级全面的SQLserver2008 数据库性能优化 方法 立即下载

相关推荐

sqlserver2008r2 安装部署以及优化配置

sqlserver2008r2 安装部署以及优化配置、sqlserver2008r2 安装部署以及优化配置、sqlserver2008r2 安装部署以及优化配置

SQL Server 性能调优

1、 用程序中,保证在实现功能的基础上,尽量减少对数据库的访问次数;通过搜索参数,尽量减少对表的访问行数,最小化结果集,从而减轻网络负担;能够分开的操作尽量分开处理,提高每次的响应速度;在数据窗口使用SQL时,尽量把使用的索引放在选择的首列;算法的结构尽量简单;在查询时,不要过多地使用通配符如SELECT * FROM T1语句,要用到几列就选择几列如:SELECT COL1,COL2 FROM

wzh1215的专栏 1642

三相Vienna整流器过零点电流畸变?试试这个SVPWM调制波补偿技巧

本文针对三相Vienna整流器在电流过零点附近出现的电流畸变问题,提出了一种基于SVPWM调制波补偿的有效解决方案。该方法通过注入零序分量重构占空比,巧妙解决因拓扑约束导致的调制矛盾,在基本不增加计算复杂度的前提下,显著平滑电流波形,降低THD。

weixin_29212867的博客 114

SQL Server 2008+ 性能调优

SQL Server 性能调优,机器性能 SQL 指标、数据库指标

上善若水 3497

模仿学习(Imitation Learning)概述

什么是模仿学习呢?简单来说,模仿学习(Imitation Learning),就是要训练机器能够复制人类的连续动作,进而达到模仿的目的。其实,Imitation Learning的实用性很高,假设今天有一个训练场景,你不知道该怎么定奖励值(reward),但是你可以收集到专家的示范数据(expert demonstration data),你就可以考虑用Imitation Learning这个方法。因此,模仿学习也被寄予很高的期待,成为下一代强人工智能的关键技术。......

qq_22749225的博客 2万+

UDP协议详解——使用Socket通信

UDP(UserDatagramProtocol)是一个简单的面向消息的传输层协议,尽管UDP提供标头和有效负载的完整性验证(通过校验和),但它不保证向上层协议提供消息传递,并且UDP层在发送后不会保留UDP 消息的状态。因此,UDP有时被称为不可靠的数据报协议。如果需要传输可靠性,则必须在用户应用程序中实现。UDP使用具有最小协议机制的简单无连接通信模型。UDP提供数据完整性的校验和,以及用于在数据报的源和目标寻址不同函数的端口号。它没有握手对话,因此将用户的程序暴露在底层网络的任何不可靠的方面。

qq_3517289697的博客 3385

SQL Server优化

页拆分的后果是降低了索引的性能,因而使用该索引的查询会导致数据存储的支离破碎。A、 查看SQL语句的执行计划,可以在查询分析其使用CTRL+L图形化的显示执行计划,一般应该注意百分比最大的几个图形的属性,把鼠标移动到其上面会显示这个图形的属性,需要注意预计成本的数据,也要注意其标题,一般都是CLUSTERED INDEX SEEK 、INDEX SEEK 、CLUSTERED INDEX SCAN 、INDEX SCAN 、TABLE SCAN等,其中出现SCAN说明语句有优化的余地。

2301_78102191的博客 6340

基于ST32 DAC7311数模转换器驱动代码及电路设计完整版

基于ST32的DAC7311模数转换器的电路设计及驱动代码完整版

qq_39626643的博客 3719

SQL Server性能优化实战:从瓶颈定位到高效调优

SQL Server性能优化需结合监控数据、索引策略与代码调优,持续跟踪改进效果。建议定期进行健康检查,并在测试环境验证变更。

xiaoyu❅的博客 2415

Agentic AI上下文工程架构终极指南:全面解决智能体理解问题

在开始架构设计前,我们需要先明确两个核心概念——Agentic AI和上下文工程。Agentic AI(智能体AI)是具备自主目标、环境交互、任务分解能力的AI系统。自主性:不需要人类逐步指令,能自己规划任务(比如“帮我订机票”→自动分解为“查航班→选座位→填信息→支付”);动态性:能根据环境变化调整行为(比如订机票时发现航班延误,自动改签到下一班);连续性:能记住历史交互(比如“上次你说喜欢靠窗位,这次帮你预留了”)。

AI开发架构师 1116

PINN驱动的3D不可压缩流场重建——从稀疏2D2C观测到完整物理场反演——含源码实现

多尺度融合策略在此发挥作用:高分辨率的2D2C数据用于约束平面内的精细结构,而低分辨率的3D3C数据提供第三维度的粗尺度信息。迁移学习架构在此发挥关键作用。这种策略在湍流封闭模型构建中尤为有效,其中RANS提供的平均流场与DNS的雷诺应力数据融合,显著提升了分离流的预测精度。在稀疏数据场景下,注意力权重根据观测数据的分布动态调整,强化数据缺失区域的物理约束,同时避免过拟合于观测点。这种机制与自适应采样的结合,实现了计算效率与重建精度的平衡,在仅保留约百分之十关键节点的情况下,仍能保持高物理一致性。

u012133341的博客 136

AI助力SQL Server 2008数据库优化实战

的AI辅助,原本需要数天的手工分析现在2小时就能完成。对于没有专职DBA的团队,这种低门槛的智能工具确实能快速解决问题。在某订单系统中,AI识别出一个关键查询缺少日期范围索引,优化后执行时间从3.2秒降至0.15秒。更惊喜的是,模型还发现某联合索引的字段顺序不合理,调整后使20%的查询受益。传统SQL Server性能优化依赖DBA手工分析执行计划,需要逐条检查慢查询、统计缺失索引,耗时且容易遗漏关键点。实际操作中发现,从分析到部署优化的完整流程都可以在浏览器中完成,不需要本地安装任何软件。

GoldEagle19的博客 473

实现边缘实时动物检测:YOLOv5模型优化与树莓派4B部署全攻略

本文介绍了基于高性能计算机训练YOLOv5目标检测模型,并部署到树莓派4B实现实时动物检测的全流程。主要内容包括:1)在高性能计算机上通过Anaconda创建虚拟环境,安装YOLOv5项目并进行模型训练;2)将训练好的best.pt模型迁移到树莓派,配置轻量级Miniconda环境;3)连接树莓派摄像头,运行实时检测程序。该系统兼顾了训练效率和边缘设备部署的实用性,可广泛应用于智慧农业、生态监测等场景。文中详细说明了数据准备、环境配置和部署步骤,为开发轻量级目标检测系统提供了完整参考方案。

m0_64661770的博客 201

mysql2008优化_利用SQL Server 2008进行优化性能

数据服务管理的一个重要方面是,确保数据库和应用程序能够提供所需级别的性能。SQL Server 2008 提供了各种工具,它们可用于收集及分析性能数据,并可优化数据库性能,以满足常见数据访问工作负荷的要求。利用 SQL Server Performance Data Collection 执行数据收集和监视SQL Server 2008 提供了 Performance Data Collectio...

weixin_34526733的博客 460

【DaVinci Developer专题】-23-IDT高阶应用:结构体类型的数组

共8页 目录 1 创建一个Record IDT 2 创建一个Array IDT 3 创建一个S/R Port Interface 4 创建一个Constant 5 导入CFG生成代码的总结 6 结尾 <--返回「实战篇」博文-总目录--> <--返回「Autosar从入门到精通-实战篇」专栏主页--> 关键字: 缩略语/术语 含义 DEV DaVinci Developer .

「汽车电子助手」的博客 1669

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

SQL Server 2008 R2在企业ERP系统中的应用实战

通过这个项目,我深刻体会到SQL Server 2008 R2在企业应用中的稳定性和可靠性。合理设计索引对查询性能提升显著定时维护计划(统计信息更新、索引重建等)必不可少监控长时间运行的查询和锁定问题很重要适当使用表变量和临时表可以优化复杂查询对于想要快速实践SQL Server的企业开发者,推荐试试InsCode(快马)平台。这个平台可以快速创建和部署数据库项目,内置的AI辅助功能还能帮助解决开发中的问题。我尝试用它搭建了一个简化版的ERP演示系统,一键部署的过程非常顺畅。

GoldEagle19的博客 590

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

分布式一致性算法精讲:Paxos、Raft、Zab与脑裂实战

分布式系统中,多节点间数据一致性是构建高可用服务的基础。面对网络分区与节点宕机,分布式一致性算法提供了解决状态分歧的核心方案。从依赖单一协调者的两阶段提交(2PC),到多数派投票的Paxos与Raft,再到ZooKeeper的Zab协议,它们构成了现代分布式架构的理论基石。理解不同算法在Leader选举、日志复制及脑裂(Split Brain)处理上的设计差异,是掌握分布式事务、微服务协调能力的关键,也直接决定了系统的可靠性与容错上限。在etcd、Kubernetes、ZooKeeper等主流基础设施中,R

weixin_33767813的博客 351

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

数据仓库之 - SQL Server 2008新的优化特性

在没有真正的数据仓库数据库之前,现在所有的数据仓库其实都只是一个基于维度模型创建的关系型数据库,但是数据仓库数据库本身有一些区别与比如OLTP数据库的独特特性,比如最显著的就是数据量最大的称为事实的表(一般都有百万甚至上亿的数据量)居于连接的中心,其周围是很多的基数比较小的称为维度的表(可能只有几百行数据),然后居于中心的大数据量的事实表通过外键连接到十几甚至几十个小数据量的...

weixin_33946605的博客 125

mysql2008优化_SQL server 2008 数据库优化常用脚本

--查询某个数据库的连接数select count(*) from Master.dbo.SysProcesses where dbid=db_id()--前10名其他等待类型SELECT TOP 10 * from sys.dm_os_wait_statsORDER BY wait_time_ms DESCSELECT *FROM sys.dm_os_wait_stats WHERE wait_...

weixin_29858113的博客 178

SQL Server 2008 性能测试和调优

  为应用程序设计数据库,你要考虑你的所作所为将会对数据库的性能有什么影响先;运行数据库后,客户不断的抱怨‘应用程序(数据库)跑的慢’,你又要优化数据库和应用程序的性能。这就需要数据库性能测试和调优方面的知识和经验。掌握其中的奥妙,你就可以发现,分析和解决问题一条龙。   你可能找到了专用工具来测试压力的条件下与数据库的性能和指标等等,但本文只谈Sql Server 2008自带...

weixin_30807677的博客 1076

Sql Server 2008 数据库优化常用脚本

–查询某个数据库的连接数 select count(*) from Master.dbo.SysProcesses where dbid=db_id() –前10名其他等待类型 SELECT TOP 10 * from sys.dm_os_wait_stats ORDER BY wait_time_ms DESC SELECT *FROM sys.dm_os_wait_stat

zhou279818998的专栏 2238

SQL Server 2008数据库引擎优化

1、数据库引擎优化顾问概述   借助 Microsoft SQL Server 数据库引擎优化顾问,您不必精通数据库结构或深谙 Microsoft SQL Server,即可选择和创建索引、索引视图和分区的最佳集合。   数...

cuanji3287的博客 394

win2008 mysql优化_SQL server 2008 数据库优化常用脚本

--查询某个数据库的连接数select count(*) from Master.dbo.SysProcesses where dbid=db_id()--前10名其他等待类型SELECT TOP 10 * from sys.dm_os_wait_statsORDER BY wait_time_ms DESCSELECT *FROM sys.dm_os_wait_stats WHERE wait_...

weixin_39788792的博客 75
上一篇: 使用javaScript解决asp.net中mvc使用ajax提交数组参数的匹配问题
下一篇: delphi fileclose和closefile的区别
蓝魔鬼仙
博客等级 码龄15年 14粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值