SQL Server学习路线全总结:从基础查询到性能调优
作为数据库方向绕不开的一课SQL Server的学习难点从来不是语法本身而是知识太散索引、事务、执行计划、锁、备份恢复每个单拎出来都能讲一整本书但真要上手处理一个实际问题时又不知道从哪下手。这篇总结是我重新梳理了自己从零到能独立负责项目的完整过程把该学的模块、每个模块背后的原理、以及实际踩过的坑都放在一起争取让你看完之后对“学什么、怎么学、怎么用”有一个整体认识。它适合刚开始接触数据库的开发者也适合学过一段时间但总觉得知识不成体系的朋友。我会直接把哪些地方值得花时间、哪些坑可以提前绕开都讲明白。1. 先理清楚SQL Server到底要学什么1.1 为什么值得花时间学它SQL Server是当前企业级关系型数据库里占有率很高的一个尤其在Windows技术栈的团队里它几乎是标配。我接触过的很多内部管理系统、订单系统、数据报表平台后端存的都是SQL Server。和MySQL相比SQL Server的图形化管理工具非常完整索引调优、性能监控、备份恢复这些偏运维的操作都有可视化入口学习门槛相对低和Oracle相比它部署简单、授权成本友好适合中小型团队。对企业开发来说数据一致性、并发控制、高可用这些硬需求SQL Server都有成熟方案所以作为数据库入门和进阶的载体它非常合适。当然这不是说其他数据库不好实际工作中很可能需要同时接触好几种数据库。但SQL Server吃透了很多概念可以直接迁移到别的产品上。它的T-SQL对SQL标准的支持、调试工具、错误信息提示都做得比较友好我见过不少零基础的同事坚持学两三个月就能独立写存储过程和报表查询。这款产品的学习曲线相对平缓但天花板又足够高等你深入到锁机制、查询优化器这些层面时会发现水很深值得长期投入。1.2 我建议的学习路线分四个阶段推进很多初学者最容易犯的毛病是抱着语法书从头翻到尾今天学SELECT明天学JOIN后天学存储过程结果学完之后还是不会解决实际问题。我自己也走过这个弯路后来把学习重新组织成四个阶段知识不再是零散的而是围绕“能不能上手干活”一步步展开。阶段学习目标核心内容第一阶段能写常用查询SELECT查询、过滤、排序、聚合、多表连接、子查询第二阶段会设计数据库对象表结构设计、主外键、约束、视图、索引、存储过程与函数第三阶段能分析和优化问题执行计划、索引调优、事务隔离、锁与死锁、性能监控第四阶段能独立运维备份恢复策略、作业调度、日志排查、高可用方案第一阶段解决“会不会写”的问题第二阶段解决“写得好不好”的问题第三阶段解决“跑得慢怎么办”的问题第四阶段解决“数据安全与连续性”的问题。这四个阶段不是割裂的后一个阶段会反复用回前面学的知识。比如学索引的时候如果第一阶段的连接查询不熟练看执行计划时连SQL都读不懂学备份恢复时如果不懂日志和事务的关系恢复方案根本做不出来。所以我的建议是不要跳阶段但每个阶段也别拖太久第一阶段两三周足够重点把时间花在第三第四阶段因为那才是拉开能力差距的地方。2. 核心知识拆解把最重要的三块吃透2.1 T-SQL用集合思维代替过程思维T-SQL是SQL Server的查询语言很多从其他编程语言转过来的开发者最先不适应的就是思维方式。写代码的习惯是“一行一行处理数据”而T-SQL的核心是“一次处理一个集合”。说得直白一点你不需要告诉数据库怎么循环遍历只需要描述清楚你要什么结果剩下的交给优化器。举个例子统计每个客户的订单数和订单总金额新手容易写循环逐条去查正确做法是一条GROUP BY语句SELECT c.CustomerId, c.CustomerName, COUNT(o.OrderId) AS OrderCount, SUM(o.TotalAmount) AS TotalAmount FROM dbo.Customers c LEFT JOIN dbo.Orders o ON c.CustomerId o.CustomerId WHERE o.OrderDate 2024-01-01 GROUP BY c.CustomerId, c.CustomerName;这里有几个新手必踩的坑。第一是NULL的问题聚合函数COUNT(列)会忽略NULL如果OrderId可能有NULL统计出来的数量就会比实际少所以统计行数一般用COUNT(*)或者COUNT(主键列)。第二是WHERE和HAVING的区别WHERE是在分组前过滤HAVING是在分组后过滤混用了结果往往不对。第三是LEFT JOIN后做过滤要小心如果把订单条件放到JOIN的ON里和放到WHERE里逻辑完全不同放WHERE会把左连接变成内连接这个坑我在实际代码评审里见过好几次。再往深一层窗口函数非常值得花时间学。ROW_NUMBER、RANK、LAG、LEAD这些在做排行、环比、分组取topN的时候比子查询高效得多。比如给每个客户的订单按时间排序SELECT CustomerId, OrderId, OrderDate, ROW_NUMBER() OVER (PARTITION BY CustomerId ORDER BY OrderDate DESC) AS rn FROM dbo.Orders;配合公共表表达式CTE可以很方便地实现“取每个客户最近的订单”这类需求。窗口函数在面试和实际开发里出现频率都很高我强烈建议练习到能不看文档写出来。这里推荐一个笨办法找一张真实的表自己把去重排序、取前几名、同环比这些场景各写一遍比背十遍语法都管用。2.2 索引查询性能的分水岭索引这块我单独拿出来说因为数据库快不快一半以上看索引设计。索引的本质是用额外的存储空间和写入开销换取查询时扫描范围的缩小。最常见的两类聚集索引决定表中数据的物理存储顺序一个表只能有一个非聚集索引相当于目录可以有多个。实际调优时我一般按这个顺序检查看WHERE条件字段有没有被索引覆盖。看SELECT的字段能不能全部包含在索引里如果索引里包含查询所需的所有列就叫覆盖索引可以避免回表。观察执行计划里有没有Key Lookup键查找有的话通常说明索引覆盖不完整。检查索引列上有没有导致索引失效的写法。索引失效的写法值得重点背下来。最常见的是隐式转换比如索引列是varchar查询条件传了一个int数据库会把列转成别的类型索引就用不上了还有在索引列上套函数比如WHERE YEAR(OrderDate) 2024这种写法等于让数据库对每一行都算一遍函数没法走索引正确写法是改成范围条件WHERE OrderDate 2024-01-01 AND OrderDate 2025-01-01。还有前导通配符LIKE %关键词同样不走索引。索引也不是越多越好每次INSERT、UPDATE、DELETE索引都要同步维护索引太多会拖慢写入。我见过有同事把查询涉及的字段都建了索引结果一次批量导入直接超时。比较合理的做法先保证高频查询有合适的索引再用索引维护作业定期检查碎片率和利用率长期没被用到的索引及时删掉。2.3 事务与锁并发正确性的基石事务保证一组操作要么全部成功要么全部回滚。理解事务不能只背ACID四个字母要能回答具体问题多个用户同时对同一条数据修改会发生什么一个事务读到另一个事务未提交的数据会怎样这背后就是隔离级别和锁机制。SQL Server默认的隔离级别是READ COMMITTED它不会读到未提交的数据但允许读到其他事务已提交的数据。可这还不够比如两个事务先读后写同一行就可能出现“读到的数据是旧值提交时把别人的修改覆盖掉”的情况。要避免这种问题可以考虑可重复读或快照隔离。快照隔离的原理是让每个事务看到某个时间点的数据版本读写互不阻塞比较适合读多写少的报表场景但会增加tempdb和版本存储的开销。锁的粒度我就不展开讲了重点说死锁。死锁的常见场景是两个事务各自持有一把锁又同时去申请对方持有的锁互相等不到对方释放。排查死锁时先看死锁报告里两个事务各自的SQL和加锁顺序通常改一下SQL里的资源访问顺序就能解决。比如一个事务先更新订单表再更新客户表另一个先更新客户表再更新订单表只要统一都按同一个顺序访问死锁基本就消失了。3. 实操记录从建库到调优的一次完整演练3.1 环境准备与基础配置学习SQL Server最省事的方案是装开发者版功能上和企业版基本一致。装好之后不要急着写SQL先把环境配好。我建议优先检查两个参数最大内存和最大并行度。最大内存不设限制的话它会尽可能占用所有可用内存如果数据库和应用跑在同一台机器上其他服务会被挤得很惨。个人学习机可以按物理内存的70%~80%设置。最大并行度的作用是控制一个查询能用几个CPU核默认是0表示不限制实际项目中并行度过高容易造成CPU抖动很多生产库会设成4或8。这两个参数都可以用SQL配置EXEC sp_configure max server memory, 8192; EXEC sp_configure max degree of parallelism, 4; RECONFIGURE;再说一下管理工具。官方自带的图形化管理工具功能已经相当完整执行计划查看、索引建议、活动监视器都在里面新手不需要急着找第三方分析工具先把官方工具用熟至少能省掉一半查资料的时间。尤其是执行计划的操作方法一定要练成肌肉记忆选中SQL按一下显示估计的执行计划扫一眼有没有表扫描、有没有Key Lookup这个技能比任何调优工具都基础。3.2 建库建表一开始就避免的类型坑很多人在建表时只顾着能不能存数据不考虑类型选错带来的后续问题。这里说几个我总结出来的经验。第一定长字符和变长字符要分清楚。CHAR(N)是定长的存不满会用空格补齐VARCHAR(N)是变长的按实际内容存放。一般用VARCHAR就够了能用VARCHAR就不要用NVARCHAR因为NVARCHAR每个字符占两个字节是VARCHAR的两倍对存储空间和索引大小都有影响。只有确实需要统一存储中文等多语言字符时才优先考虑NVARCHAR。我见过不少数据库空间膨胀、索引过大源头就是字段类型乱用。第二主键的选择。GUID做主键不是不行但用GUID做聚集索引主键插入时因为值是随机的会导致索引页面频繁分裂性能非常差。如果业务上不需要跨库合并数据用自增INT做主键是最稳妥的选择。自增列配上聚集索引数据按顺序写入页面分裂很少。第三日期类型。能存日期就别用字符串存。用字符串存日期虽然也能查询但排序、比较都会出问题统计时还得先转换一次索引根本发挥不了作用。从设计表开始就养成用正确类型的习惯后面能省很多事。下面是一个比较规范的建表示例包含主键、默认值和一个高频索引CREATE TABLE dbo.Orders ( OrderId INT IDENTITY(1,1) NOT NULL, CustomerId INT NOT NULL, OrderDate DATETIME NOT NULL, TotalAmount DECIMAL(12,2) NOT NULL, Status TINYINT NOT NULL DEFAULT 0, CONSTRAINT PK_Orders PRIMARY KEY (OrderId) ); GO CREATE INDEX IX_Orders_CustomerId ON dbo.Orders(CustomerId);这里多提一句SQL Server的索引名和约束名最好统一规范。我习惯用IX_表名_字段名表示索引用PK_表名表示主键用FK_表名_关联表名表示外键。命名规范看似小事到后期排查问题、生成脚本、维护索引统计时清晰的名字能明显提高效率。3.3 一次真实报表查询的优化过程我以某订单系统的月度销售统计为例完整走一遍“先慢后快”的排查思路。需求是统计某个时间段内每个客户的订单数与订单总额筛掉没有订单的客户按总额倒序。先写一版“能跑就行”的SQLSELECT c.CustomerName, COUNT(o.OrderId) AS OrderCount, SUM(o.TotalAmount) AS TotalAmount FROM dbo.Customers c LEFT JOIN dbo.Orders o ON c.CustomerId o.CustomerId WHERE o.OrderDate 2024-01-01 AND o.OrderDate 2025-01-01 GROUP BY c.CustomerName ORDER BY TotalAmount DESC;数据量一上来这个查询明显变慢。打开执行计划后发现Orders表走了全表扫描扫描行数巨大。原因很简单OrderDate字段上没有索引而且展示字段CustomerName在Customers表上Join时还要反复访问客户表。优化分两步。第一步在OrderDate上建索引因为WHERE条件和高频查询都涉及这个字段CREATE INDEX IX_Orders_OrderDate ON dbo.Orders(OrderDate);但这样还不够执行计划里还是能看到Key Lookup。说明索引里只有OrderDate但查询还需要返回OrderId、CustomerId、TotalAmount这些列每一行都要回表取一遍。于是把常用列加进索引做成覆盖索引CREATE INDEX IX_Orders_OrderDate_Cover ON dbo.Orders(OrderDate, CustomerId, TotalAmount, OrderId);调整后扫描变成索引范围扫描IO次数下降了九成以上。这个过程让我深刻体会到看执行计划一定不要只看“走了什么”还要看“为什么走”是缺索引、索引不覆盖还是SQL写法导致索引失效原因不同优化动作完全不同。3.4 备份恢复必须亲手做一遍才放心备份恢复是数据库学习中应该重点演练的模块但也是容易被忽略的模块。很多新手以为定期做了备份就算完事等到真正要恢复时才发现在某个时间点根本恢复不回来。完整备份、差异备份、日志备份三种要搭配使用。完整备份是基础包含整个数据库差异备份保存自上一次完整备份之后所有变更的数据日志备份保存自上一次备份以来的所有日志记录。生产环境的典型策略是每天一次完整备份每几小时一次差异备份每10到30分钟一次日志备份这样数据丢失窗口能做到很小。恢复时有一个关键动作日志链要完整。假设要恢复到昨天晚上10点的状态恢复命令大概是RESTORE DATABASE DemoDB FROM DISK ND:\Backup\DemoDB_Full.bak WITH NORECOVERY, REPLACE; RESTORE DATABASE DemoDB FROM DISK ND:\Backup\DemoDB_Diff.bak WITH NORECOVERY; RESTORE LOG DemoDB FROM DISK ND:\Backup\DemoDB_Log_20250101_2200.trn WITH RECOVERY;注意顺序不能乱而且在执行最后一个RESTORE之前数据库一直处于NORECOVERY状态其他用户是连不上数据库的。我提醒所有初学者恢复动作一定要在测试环境多演练几次不要在紧急时刻第一次操作。身边就有同事因为少备份了一段日志只能恢复到半小时前的数据业务方急得跳脚这种教训一次就够。4. 我遇到过的典型问题与排查思路4.1 慢查询定位学会用工具而不是瞎猜排查慢查询我一般按“先看统计信息再看执行计划最后做针对性优化”的顺序。先把两个小开关打开能省很多时间SET STATISTICS IO ON; SET STATISTICS TIME ON;然后跑一遍慢SQL看输出里的“逻辑读取次数”和“执行时间”。逻辑读取次数突然特别大基本能判断是扫描了太多数据接下来看执行计划里是不是存在全表扫描、Key Lookup或者Hash Match。如果是存储过程还可以查一下相关索引的缺失建议。缺索引的情况工具一般会给提示但提示只能参考最终建不建、怎么建还是要结合查询频率和写入性能决定。还有一个容易被忽略的点统计信息是否过期。SQL Server靠统计信息估算行数如果一张表被大量增删改统计信息没有及时更新优化器可能选错执行计划。可以手动更新统计信息或者观察自动更新的阈值设置。这个属于底层机制光知道不能直接解决问题但能少走很多弯路。4.2 死锁处理先看加锁顺序再看隔离级别死锁发生的时候最先要做的是拿到死锁图。生产环境可以用扩展事件抓平时练习的时候直接开两个查询窗口模拟两笔事务故意让它们的加锁顺序相反就能复现死锁。我遇到过一次印象深刻的死锁两个存储过程都在一个事务里先更新订单再更新客户但其中一个把客户表更新拆成了两条语句另一个则相反结果在高并发下互相锁住。解决办法很简单统一次序所有涉及订单和客户的事务都先更新订单表再更新客户表。如果死锁无法通过调整顺序避免还可以考虑降低锁的持有时间。比如在事务里只留下必要的更新语句把查询统计类操作放到事务外面或者使用快照隔离让读操作不申请共享锁从源头上减少阻塞。快照隔离不是银弹启用后会增加tempdb的开销跑批类任务耗时也可能上升所以上线前一定要先做压力测试。4.3 阻塞分析谁在等谁一目了然阻塞其实比死锁更常见。死锁是两个事务互相等数据库会自动牺牲一个阻塞是一个事务持有锁不释放其他事务干等着。排查阻塞的关键是找到阻塞链的源头。我常用的查询很简单直接看当前有哪些请求在等待其他会话SELECT session_id, blocking_session_id, wait_type, wait_time, last_wait_type FROM sys.dm_exec_requests WHERE blocking_session_id 0;如果blocking_session_id不为0说明这条会话正在等别人。顺着blocking_session_id一层层往上追就能找到最顶上的会话。再结合下面的锁查询确认它持有的是什么资源SELECT request_session_id, resource_type, resource_description, request_mode, request_status FROM sys.dm_tran_locks WHERE request_session_id 顶层的会话ID;定位到源头之后常见原因就那么几个某个事务长时间没提交、长事务里做了大量查询统计、死锁自动回滚后事务没正确结束。处理方式先确认这个阻塞是偶发还是常态偶发的可以等它提交完或者让业务方确认后手动终止常态的就说明事务设计有问题要回到事务隔离、锁粒度和SQL改写这些方向去优化。4.4 参数嗅探存储过程忽快忽慢的元凶参数嗅探是新手很难察觉到、一旦碰到又很折磨人的问题。现象很典型同一个存储过程第一次执行传入小范围数据非常快第二次传入大数据量范围变得特别慢或者反过来。原因是首次编译存储过程时会根据当时传入的参数值生成执行计划后续调用都复用了这个计划而参数变了原计划可能就不适合了。解决方法有几种一是加WITH RECOMPILE每次执行都重新编译适合执行频率不高但对计划准确性要求高的存储过程二是用OPTION (RECOMPILE)提示只针对当前语句重新编译三是用OPTIMIZE FOR提示指定一个有代表性的参考值让优化器按这个值生成计划CREATE PROCEDURE dbo.GetOrdersByDate StartDate DATETIME, EndDate DATETIME AS BEGIN SELECT OrderId, CustomerId, TotalAmount FROM dbo.Orders WHERE OrderDate StartDate AND OrderDate EndDate OPTION (RECOMPILE); END;我的个人经验是先别急着加提示先分析这个存储过程是不是真的被多次复用如果每次传入的参数分布差异极大再加OPTIMIZE FOR或者RECOMPILE如果性能波动只是因为统计信息过期更新统计信息就够了。把原因判断错了加了提示反而可能让本来正常的查询变成异常慢。5. 写在最后一些可能对你有用的经验如果只让我说一条学习建议我会说不要按语法章节学SQL Server要按业务场景学。拿一个实际项目比如做一个简单的进销存系统从建库建表开始到写查询、做报表、处理并发、设计备份策略把每个知识点都放回场景里理解记忆会牢固得多因为你知道它解决的是什么问题。我自己学习时习惯保持一套本地环境把每次调优前后的执行计划、运行时间、修改的SQL都记录下来。不要小看这个习惯遇到类似问题直接翻旧笔记比重新摸索快很多。调优这件事不是看一遍理论就能会必须亲手把一条慢SQL从全表扫描优化到索引范围扫描体会到逻辑读取次数从几万降到几百的感觉知识才算真正长在身上。SQL Server后续可以深入的方向还有很多比如内存优化表、列存储索引、高可用方案、在Linux上的部署、与大数据生态的集成等。但不管往哪个方向走前面的基础都逃不掉T-SQL的熟练度、对索引和事务的理解、对执行计划的阅读能力这三样是数据库相关工作的底层能力。先把这几块练扎实再谈工具和架构是更稳健的成长路径。这套总结是我自己踩过不少坑之后梳理出来的希望帮你少走一点弯路。

相关新闻

基于SCSSA的BiLSTM超参数自动寻优:时序分类实战手记

基于SCSSA的BiLSTM超参数自动寻优:时序分类实战手记

如果你正在用BiLSTM做分类任务,大概率经历过这种场景:调了好几组超参数,模型表现跟抽卡一样不稳,同一份数据换个随机种子结果天差地别。这类问题在滚动轴承故障诊断、文本情感分类、脑电信号识别这些任务里特别常见——BiLSTM确实…

2026/10/17 5:14:19 阅读更多 →
分布式电源接入对配电网故障定位影响的Python仿真分析

分布式电源接入对配电网故障定位影响的Python仿真分析

搞配电网仿真的人应该都有这个体会:分布式电源(DG)接入比例一上来,原来那套故障定位手段就开始不靠谱了。我最近拿IEEE 33节点系统在Python里完整跑了一遍,对比了DG接入前后的故障定位结果,误差变化非常直观…

2026/10/17 5:14:19 阅读更多 →
Docker镜像拉取超时怎么办?一文搞定加速器配置与daemon.json优化

Docker镜像拉取超时怎么办?一文搞定加速器配置与daemon.json优化

刚把Docker环境装好的那天,我兴冲冲地敲下docker pull nginx:latest,然后就傻眼了——进度条像睡着了一样,隔好半天才往前爬一格,最后要么书库超时,要么直接报EOF、Client.Timeout exceeded这类让人血压拉满的错误。如…

2026/10/17 5:14:19 阅读更多 →

最新新闻

DashPlayer 安装教程:英语学习视频播放器从源码到跑起来的完整指南

DashPlayer 安装教程:英语学习视频播放器从源码到跑起来的完整指南

DashPlayer 安装教程:英语学习视频播放器从源码到跑起来的完整指南 【免费下载链接】DashPlayer 为英语学习者量身打造的视频播放器,助你通过观看视频、沉浸真实语境,轻松提升英语水平。#美剧 #播放器 #听力 项目地址: https://gitcode.com…

2026/10/17 5:56:32 阅读更多 →
POI读取docx异常全解析:从文件结构到实战排查

POI读取docx异常全解析:从文件结构到实战排查

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 5:56:32 阅读更多 →
DFS与邻接表实战:树形结构遍历与翻转操作详解

DFS与邻接表实战:树形结构遍历与翻转操作详解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 5:56:32 阅读更多 →
OpCore Simplify 实操:从硬件报告到 OpenCore EFI 的 6 个步骤

OpCore Simplify 实操:从硬件报告到 OpenCore EFI 的 6 个步骤

OpCore Simplify 实操:从硬件报告到 OpenCore EFI 的 6 个步骤 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 如果你曾在 PC 上装过 macO…

2026/10/17 5:56:32 阅读更多 →
客户档案不用录入:Macro CRM 从团队邮件里自动长出销售管道

客户档案不用录入:Macro CRM 从团队邮件里自动长出销售管道

客户档案不用录入:Macro CRM 从团队邮件里自动长出销售管道 【免费下载链接】macro Macro is a unified workspace for teams: email, chat, docs, tasks, agents, calls, and CRM — -linked together with shared AI memory. 项目地址: https://gitcode.com/Git…

2026/10/17 5:56:32 阅读更多 →
从零搭建Python数据科学环境:Anaconda与虚拟环境配置详解

从零搭建Python数据科学环境:Anaconda与虚拟环境配置详解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 5:55:32 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →