当前位置: 首页 > article >正文

SQLServer CPU飙到100%?手把手教你用Profiler揪出元凶SQL(附索引优化实战)

SQL Server CPU 100% 紧急排障实战从 Profiler 追踪到索引优化的完整闭环那天下午监控大屏突然一片飘红告警邮件像雪片一样涌来。核心业务数据库所在的服务器的 CPU 使用率毫无征兆地飙升至 100%并且居高不下。业务部门的电话立刻打了进来系统响应变得极其缓慢用户操作频频超时。作为团队的运维负责人这种场景虽然不愿面对但却是我们必须具备解决能力的“战场”。这不仅仅是重启服务就能糊弄过去的问题我们需要精准地找到那条正在“吞噬”CPU 资源的 SQL 语句并从根本上解决它。本文将完整还原这次高压下的排障过程手把手带你使用 SQL Server Profiler 这把“手术刀”结合执行计划分析最终通过精准的索引优化让 CPU 回归平静。无论你是初涉数据库运维的新手还是希望系统化掌握性能排查技巧的开发者这套从“现象定位”到“根因解决”的实战闭环都将为你提供清晰的路径。1. 应急响应与初步诊断锁定数据库层当服务器 CPU 持续满载第一步不是盲目重启而是科学地缩小问题范围。我们面对的是一个典型的黑盒系统需要由外向内层层剥离。1.1 系统级资源定位首先通过操作系统工具快速定位消耗 CPU 的进程。在 Windows 服务器上最直接的是打开任务管理器切换到“详细信息”选项卡按“CPU”列降序排序。如果发现sqlservr.exe进程的 CPU 占用率持续在 90% 以上那么问题大概率出在 SQL Server 数据库引擎内部。注意有时高 CPU 可能由其他进程如防病毒软件扫描、计划任务引发务必先确认是sqlservr.exe进程本身。1.2 数据库内部快照分析确认是 SQL Server 后我们需要进入数据库内部获取当前正在运行的“昂贵”查询。此时动态管理视图DMV是我们的第一把利器。执行以下查询可以快速抓取当前消耗 CPU 最多的前10个请求SELECT TOP 10 s.session_id, r.status, r.cpu_time, r.logical_reads, r.writes, t.text AS [SQL Text], SUBSTRING(t.text, (r.statement_start_offset/2) 1, ((CASE WHEN r.statement_end_offset -1 THEN DATALENGTH(t.text) ELSE r.statement_end_offset END - r.statement_start_offset)/2) 1) AS [Executing Statement], qp.query_plan FROM sys.dm_exec_requests r JOIN sys.dm_exec_sessions s ON r.session_id s.session_id CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) t CROSS APPLY sys.dm_exec_query_plan(r.plan_handle) qp WHERE s.is_user_process 1 AND r.status NOT IN (background, sleeping) ORDER BY r.cpu_time DESC;这个查询能立即告诉你session_id: 会话ID可用于后续强制终止KILL操作。cpu_time: 该请求已消耗的CPU时间毫秒是判断“元凶”的关键指标。logical_reads: 逻辑读取次数反映数据访问量。SQL Text / Executing Statement: 完整的批处理语句及当前正在执行的具体语句。query_plan: 该语句的当前执行计划对于分析性能瓶颈至关重要。通过这一步我们可能已经能瞥见一两条正在疯狂运行的 SQL。但 DMV 反映的是瞬时状态对于间歇性爆发或已经执行完毕的“历史罪魁”我们需要更强大的工具进行持续追踪。2. 深入追踪配置与使用 SQL Server ProfilerSQL Server Profiler 是一个图形化的事件追踪工具它能像飞机的黑匣子一样记录下数据库引擎发生的几乎所有事件。在本次案例中我们将用它来捕获那些消耗大量 CPU 的查询语句。2.1 创建针对性的跟踪模板盲目跟踪所有事件会产生海量数据干扰分析。我们需要创建一个聚焦于性能问题的跟踪模板。关键事件类Event Class包括SQL:BatchCompleted: 记录批处理语句完成事件包含执行时长、CPU消耗、读写次数。RPC:Completed: 记录远程过程调用完成事件。SP:StmtCompleted: 记录存储过程中单个语句的完成事件。在 Profiler 的跟踪属性中务必添加以下关键数据列Data ColumnsCPU: 事件消耗的 CPU 时间毫秒。Reads/Writes: 逻辑读写次数。Duration: 事件执行持续时间毫秒。TextData: SQL 语句文本。ApplicationName: 应用程序名帮助定位来源。LoginName: 执行者。同时设置有效的筛选器Filters以缩小范围Duration大于等于 1000毫秒过滤掉快速查询。CPU大于等于 500毫秒直接瞄准高 CPU 查询。排除系统进程如SQLAgent。2.2 执行跟踪与数据捕获启动跟踪后让其在生产环境运行10-15 分钟覆盖一个完整的业务周期或问题复现周期。然后将跟踪结果保存为跟踪文件.trc格式或跟踪表导入到数据库表中便于分析。提示在生产环境运行 Profiler 本身会有少量性能开销通常 3-5%应选择业务相对平缓时段并控制跟踪时长。对于极高负载系统可考虑使用服务器端跟踪sp_trace_create以降低开销。2.3 分析跟踪结果打开保存的跟踪文件按CPU列降序排序。排在最前面的几条 SQL就是我们需要重点解剖的“嫌疑犯”。在我们的案例中捕获到的头号 SQL 是一个用于分页查询的复杂语句它每 3 秒就被客户端调用一次其结构大致如下SELECT TOP 30 [数十个字段] FROM eventlog a LEFT JOIN ... -- 多个表连接 WHERE MgrObjId IN (SELECT ...) -- 复杂的子查询 ORDER BY AlarmTime DESC;另一条紧随其后的是用于获取总数的COUNT(*)语句。这两条语句成对出现CPU 消耗占比超过了总捕获量的 70%。元凶锁定3. 瓶颈剖析解读执行计划与等待统计找到高 CPU SQL 只是第一步就像医生找到了病灶接下来需要 CT执行计划和化验报告等待统计来确诊病因。3.1 获取并解读执行计划将 Profiler 捕获到的 SQL 语句在 SQL Server Management Studio (SSMS) 中执行并启用“包括实际执行计划”快捷键Ctrl M。执行后在“执行计划”标签页你会看到一个由各种图标组成的流程图。把鼠标悬停在每个图标上查看其详细信息。在我们的SELECT TOP 30 ... ORDER BY AlarmTime DESC语句的执行计划中一个刺眼的黄色警告图标引起了注意。悬停后显示“缺失索引建议”但这还不是关键。继续查看发现了一个Sort 运算符其成本占比高达94%。这意味着数据库为了取出按AlarmTime倒序的前30条记录不得不先对所有符合 WHERE 条件的记录进行排序这是一个非常消耗 CPU 和内存的操作。运算符预估行数实际行数预估成本占比问题描述Sort215,0003094%对大量中间结果集进行内存排序CPU消耗主因Index Scan215,000215,0005%对eventlog表进行全索引扫描Nested Loops30301%表连接操作3.2 分析COUNT(*)语句另一条COUNT(*)语句的执行计划更简单粗暴一个针对eventlog表的Clustered Index Scan聚集索引扫描即表扫描成本 100%。这意味着它正在读取整张表的每一行来计数在表有20多万行的情况下每次执行都是巨大的 I/O 和 CPU 负担。3.3 结合等待统计综合分析除了执行计划还可以查询sys.dm_os_wait_statsDMV查看 SQL Server 在哪些类型的等待上花费了最多时间。在执行高 CPU 语句前后采样对比如果发现SOS_SCHEDULER_YIELD等待类型显著增加这通常意味着线程正在主动让出 CPU 给其他线程从侧面印证了 CPU 资源确实紧张被计算密集型操作所占据。至此诊断结论清晰排序操作ORDER BY AlarmTime DESC在没有合适索引支持时导致昂贵的内存排序。表扫描COUNT(*)及其 WHERE 条件无法有效利用索引导致全表扫描。高频执行两条语句被客户端以每3秒一次的高频调用放大了单次执行的代价。4. 精准优化索引设计与性能验证诊断完毕开始“手术”。优化的核心思路是让数据查找走最短、最有效的路径避免不必要的排序和全量扫描。4.1 为排序字段创建索引针对SELECT TOP 30 ... ORDER BY AlarmTime DESC最直接的优化是为AlarmTime字段建立索引。但这里有个关键点查询中包含了SELECT *实际上是数十个字段如果只为AlarmTime建一个单列索引数据库可能仍然需要回到主表Key Lookup去获取其他字段这可能会让优化器认为不如直接扫描表。更优的方案是创建覆盖索引将ORDER BY和WHERE子句中的字段以及SELECT中常用的字段都包含进来。根据我们的 SQL创建如下索引CREATE NONCLUSTERED INDEX IX_eventlog_AlarmTime_MgrObjId ON dbo.eventlog (AlarmTime DESC, MgrObjId) INCLUDE ( AgentBm, RemoveTime, Ch, Value, Content, Level, EventBm, Cfmoper, Cfm, Cfmtime, State -- 以及其他SELECT列表中的必要字段 ) WITH (ONLINE ON); -- 在线创建减少对业务的影响这个索引的精妙之处在于索引键按AlarmTime DESC排序数据库可以直接在索引的“最前端”拿到最新的30条记录完全消除了 Sort 操作。包含了MgrObjId作为第二键可以高效地满足 WHERE 子句中的MgrObjId IN (...)条件过滤。使用INCLUDE子句包含了查询所需的所有其他字段使得这个索引“覆盖”了整个查询数据库引擎仅访问索引即可返回全部结果避免了昂贵的键查找。创建索引后再次查看执行计划你会发现那个消耗94%的Sort 运算符消失了取而代之的是一个高效的Index Seek。4.2 优化 COUNT(*) 查询对于COUNT(*)优化的目标是让其利用索引进行计数避免表扫描。观察其 WHERE 子句过滤条件主要在MgrObjId上。因此为MgrObjId创建索引是第一步CREATE NONCLUSTERED INDEX IX_eventlog_MgrObjId ON dbo.eventlog (MgrObjId);然而仅这样可能还不够。因为COUNT(*)本身不关心具体值只关心行数。如果MgrObjId的重复值非常多选择性低优化器可能仍然认为扫描整个表的效率更高。一个更极致的优化是创建过滤索引如果MgrObjId的无效值如 GUID 全零可以被明确排除CREATE NONCLUSTERED INDEX IX_eventlog_MgrObjId_NotDefault ON dbo.eventlog (MgrObjId) WHERE MgrObjId NOT IN (00000000-0000-0000-0000-000000000000, 11111111-1111-1111-1111-111111111111);这个索引体积更小针对有效查询更高效。优化后COUNT(*)的执行计划从Clustered Index Scan变成了Index Seek。4.3 性能对比验证优化不能凭感觉必须有数据对比。使用以下 DMV 查询对比优化前后同一 SQL 语句的性能指标SELECT qs.execution_count, qs.total_worker_time / 1000000.0 AS total_cpu_sec, -- 总CPU时间秒 qs.total_elapsed_time / 1000000.0 AS total_duration_sec, -- 总耗时秒 qs.total_logical_reads, SUBSTRING(st.text, (qs.statement_start_offset/2) 1, ((CASE WHEN qs.statement_end_offset -1 THEN DATALENGTH(st.text) ELSE qs.statement_end_offset END - qs.statement_start_offset)/2) 1) AS query_text FROM sys.dm_exec_query_stats qs CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st WHERE st.text LIKE %你的关键SQL片段% ORDER BY total_worker_time DESC;在我们的案例中优化后的数据对比如下指标优化前单次平均优化后单次平均提升幅度CPU 时间320 ms15 ms约 95%耗时350 ms20 ms约 94%逻辑读12,50085约 99%将这些优化部署到生产环境后服务器 CPU 使用率在几分钟内从持续的 100% 下降并稳定在 15%-20% 的正常水平。业务系统的响应速度也恢复了正常。5. 体系化防御与进阶思考一次成功的救火值得庆幸但构建体系化的防御机制更为重要。优化不应止步于解决当前问题。5.1 建立常态化监控部署扩展事件Extended Events相较于 Profiler扩展事件是更轻量、功能更强大的新一代监控工具。可以创建一个长期运行的会话持续捕获sqlserver.sql_statement_completed事件中cpu_time或duration过长的语句并定期分析。使用查询存储Query Store这是 SQL Server 2016 及以后版本的内置功能。它能自动捕获查询历史、执行计划和运行时统计信息。你可以轻松地对比不同时间点的查询性能快速发现“性能回归”的查询。5.2 优化应用程序模式很多时候数据库问题根在应用设计。与开发团队沟通减少高频轮询案例中每3秒一次的查询是根源。能否改为由服务端在数据变更时主动推送通知如使用 SignalR或者适当降低轮询频率并增加本地缓存重构分页逻辑对于深度分页OFFSET ... FETCH值很大传统的TOP/ORDER BY模式会越来越慢。可以考虑使用“键集分页”即记录上一页最后一条记录的排序键值作为下一页查询的起始条件。5.3 索引维护与权衡索引不是越多越好。本次优化添加的索引会带来额外的写入开销和存储成本。需要建立索引维护作业定期重建或重组索引以消除碎片。同时可以利用sys.dm_db_index_usage_stats视图来识别那些创建了但很少或从未被使用过的索引考虑将其删除。那次 CPU 100% 的警报最终成了一次宝贵的实战演练。它再次印证了一个朴素的道理绝大部分数据库性能问题都可以通过清晰的排查路径监控 → 捕获 → 分析 → 优化来解决。而索引永远是关系型数据库性能调优中最锋利、也最需要审慎使用的武器。把这次经历中的工具使用技巧和分析思路固化下来当下一次告警再次响起时你就能从容地拿起 Profiler 这把手术刀精准地解剖问题而不是在重启服务和盲目猜测中浪费时间。数据库的平稳运行就藏在这些对细节的持续关注和优化之中。

相关文章:

SQLServer CPU飙到100%?手把手教你用Profiler揪出元凶SQL(附索引优化实战)

SQL Server CPU 100% 紧急排障实战:从 Profiler 追踪到索引优化的完整闭环 那天下午,监控大屏突然一片飘红,告警邮件像雪片一样涌来。核心业务数据库所在的服务器的 CPU 使用率,毫无征兆地飙升至 100%,并且居高不下。业…...

uniapp H5打包后白屏?手把手教你排查JavaScript启用问题与Nginx部署

从白屏到流畅:深度解析UniApp H5部署的完整链路与实战排障 你是否也曾在深夜,满怀期待地将精心开发的UniApp项目打包成H5,部署到服务器后,满怀信心地打开浏览器,迎接你的却是一片刺眼的白屏,或者那个令人沮…...

CVPR新星MambaOut深度评测:分类任务吊打Mamba,检测分割还差多少?

CVPR新星MambaOut深度评测:分类任务吊打Mamba,检测分割还差多少? 最近在CVPR的论文海洋里,一个名字挺有意思的工作吸引了不少眼球——MambaOut。这名字本身就带着点挑衅和反思的意味,仿佛在问整个社区:我们…...

go语言实战:基于gin和gorm构建商品库存管理api服务

最近在学Go语言,想找个实战项目练练手,把Gin、GORM这些框架用起来。正好手头有个需求,想做个简单的商品库存管理API,用来练手再合适不过了。这个项目麻雀虽小五脏俱全,涵盖了RESTful API设计、数据库操作、业务逻辑和鉴…...

CiteSpace实战:从Web of Science数据到可视化图谱的完整流程(附避坑指南)

CiteSpace实战:从Web of Science数据到可视化图谱的完整流程(附避坑指南) 如果你刚刚踏入科研领域,面对海量的文献,是否感到无从下手?当导师或同行提到“知识图谱”、“研究前沿”这些概念时,你…...

避坑指南:Proxmox VE 4.4 USB重定向常见问题及解决方案

Proxmox VE USB重定向实战:从原理到排错,一份写给运维老手的深度指南 如果你在Proxmox VE里折腾过USB设备直通,大概率经历过这样的时刻:配置文件明明改对了,虚拟机里却死活找不到那个U盘;或者设备时灵时不灵…...

金智维K-RPA实战:如何用4000个组件快速搭建财务自动化流程(附避坑指南)

金智维K-RPA实战:如何用4000个组件快速搭建财务自动化流程(附避坑指南) 财务部门每个月总有那么几天,像打仗一样。月初的报表、月末的对账、日常的票据处理,这些重复、枯燥却又要求零差错的任务,占据了财务…...

DRV8718-Q1实战:汽车座椅电机控制系统的5个关键优化技巧

DRV8718-Q1实战:汽车座椅电机控制系统的5个关键优化技巧 在汽车座椅控制系统的开发中,工程师们常常面临一个看似矛盾的核心挑战:如何在提升系统效率、确保极致可靠性的同时,有效抑制电磁干扰(EMI)&#xff…...

迷你电子台历:ESP32-C3驱动WS2812B点阵的日历嵌入式设计

1. 项目概述“迷你电子台历”是一个以极简硬件架构实现全年可视化日历显示的嵌入式交互装置。其核心设计思想源于实体赠品台历的机械逻辑——通过一张固定面板与一个可滑动/翻转的活动挡板组合,遮蔽或显露预设区域,从而在静态物理界面上动态呈现日期信息…...

Z-Image-Turbo-rinaiqiao-huiyewunv实操指南:Streamlit缓存机制与多会话并发支持

Z-Image-Turbo-rinaiqiao-huiyewunv实操指南:Streamlit缓存机制与多会话并发支持 1. 引言:当专属画师遇上高并发访问 想象一下,你部署了一个专属的二次元人物绘图工具,用户们正兴致勃勃地创作他们心中的辉夜大小姐。突然&#x…...

Qwen3-TTS语音合成效果展示:中文东北话+粤语+闽南语三方言情感语音对比集

Qwen3-TTS语音合成效果展示:中文东北话粤语闽南语三方言情感语音对比集 重要提示:本文仅展示语音合成技术效果,所有方言语音样本均为AI合成,不涉及任何地域文化评价。 1. 方言语音合成效果惊艳展示 作为一名长期关注语音合成技术…...

BGE-Large-Zh实战案例:电商评论情感倾向与商品属性的语义关联分析

BGE-Large-Zh实战案例:电商评论情感倾向与商品属性的语义关联分析 1. 引言:当评论不只是文字,而是数据金矿 你有没有想过,电商平台上海量的用户评论,除了告诉你“好用”或“不好用”之外,还隐藏着什么秘密…...

TFT Overlay智能辅助工具:云顶之弈决策增强实战指南

TFT Overlay智能辅助工具:云顶之弈决策增强实战指南 【免费下载链接】TFT-Overlay Overlay for Teamfight Tactics 项目地址: https://gitcode.com/gh_mirrors/tf/TFT-Overlay 在云顶之弈的战场上,每一秒的决策都可能影响战局走向。当你面对复杂的…...

TFT Overlay:重构云顶之弈决策体系的智能辅助工具

TFT Overlay:重构云顶之弈决策体系的智能辅助工具 【免费下载链接】TFT-Overlay Overlay for Teamfight Tactics 项目地址: https://gitcode.com/gh_mirrors/tf/TFT-Overlay 在快节奏的云顶之弈对局中,玩家常面临三大核心痛点:装备合成…...

利用快马平台快速原型一个WebSocket实时网络聊天室

最近在做一个网络应用的小项目,需要验证一个关于实时通信的想法。大家都知道,从灵感到一个能跑起来的Demo,中间往往隔着配置环境、写基础框架、调试通信协议等一系列繁琐步骤,非常消耗时间和热情。这次我尝试用了一种新方法&#…...

Qwen3-ASR-0.6B安全部署指南:保护用户语音隐私

Qwen3-ASR-0.6B安全部署指南:保护用户语音隐私 1. 引言 语音识别技术正在改变我们与设备交互的方式,但随之而来的隐私安全问题也不容忽视。想象一下,你的会议录音、私人对话或敏感商业讨论被上传到第三方服务器处理,这种风险让人…...

三、嘉立创免费PCB打样全流程指南:从领券到下单,每月2次5片包邮

三、嘉立创免费PCB打样全流程指南:从领券到下单,每月2次5片包邮 很多刚开始做硬件项目的朋友,最头疼的可能就是PCB打样了。自己画好的电路图,想变成实物验证一下,结果一问价格,动辄几十上百,还…...

wan2.1-vae开源部署实操:从CSDN GPU实例创建→镜像拉取→服务启动全流程

wan2.1-vae开源部署实操:从CSDN GPU实例创建→镜像拉取→服务启动全流程 想体验一下最近很火的wan2.1-vae文生图模型,生成高清、细节丰富的人物和场景图片吗?但一看到复杂的本地部署、环境配置、模型下载就头疼? 别担心&#xf…...

立创“电子愚乐”项目:基于ESP8266与WS2812的智能触控小夜灯DIY全记录(含3D打印外壳与整蛊模式)

立创“电子愚乐”项目:基于ESP8266与WS2812的智能触控小夜灯DIY全记录 最近在立创社区看到一个特别有意思的“电子愚乐”项目,一个能让舍友“疯狂”的智能小夜灯。它不仅有实用的触控开关和手机远程控制,还藏着一个有趣的整蛊模式&#xff0c…...

CLIP-GmP-ViT-L-14图文匹配测试工具跨平台开发:.NET桌面客户端集成

CLIP-GmP-ViT-L-14图文匹配测试工具跨平台开发:.NET桌面客户端集成 1. 引言 你有没有遇到过这样的场景?手头有一堆产品图片,需要快速找到和某个文字描述最匹配的那一张;或者,你想从海量的设计素材库里,用…...

AudioLDM-S极速部署:Linux系统保姆级安装教程

AudioLDM-S极速部署:Linux系统保姆级安装教程 1. 引言 你是不是曾经为了找一个合适的音效而翻遍各种素材网站?或者为了制作一段背景音乐而头疼不已?现在,只需要一句话,AI就能帮你生成高质量的音效、音乐甚至人声。今…...

智能客服环境搭建实战:从架构设计到生产环境避坑指南

最近在帮公司搭建一套智能客服系统,从零到一的过程踩了不少坑,也积累了一些实战经验。今天这篇笔记,就来聊聊如何从架构设计开始,一步步搭建一个稳定、可扩展的智能客服环境,并分享一些在生产环境中容易遇到的“坑”及…...

AI赋能教学设计:让快马平台智能生成生物繁殖课个性化案例与交互内容

最近在准备一节生物繁殖课,想设计一些更生动、更贴近学生生活的案例。传统的教学资源库虽然丰富,但总觉得缺少点“个性化”和“即时性”。比如,我想拿自己(老师)作为例子,讲解遗传特征,或者根据…...

VibeVoice ProGPU内存池优化:动态显存分配减少OOM风险实操

VibeVoice Pro GPU内存池优化:动态显存分配减少OOM风险实操 1. 引言:为什么需要GPU内存优化 VibeVoice Pro作为一款零延迟流式音频引擎,在实时语音合成领域表现出色。但在实际部署中,许多用户遇到了GPU内存不足(OOM&…...

Audio Pixel Studio实战教程:用logs缓存机制实现音频处理历史追溯与批量导出

Audio Pixel Studio实战教程:用logs缓存机制实现音频处理历史追溯与批量导出 1. 引言:从一次处理到高效管理 想象一下这个场景:你正在为一个视频项目准备旁白,用Audio Pixel Studio生成了十几段不同语气、不同语速的语音。过了一…...

超低功耗热释电小夜灯硬件设计与实现

1. 项目概述热红外感应低功耗小夜灯是一款面向家庭与住宅场景的自主式环境照明装置,其核心设计目标是实现超长续航、多模式安装适配与人本化光响应。该系统不依赖外部供电网络,采用可更换式锂离子电池供电,典型工况下单次充电可持续运行≥3个…...

疯狂星期四,来看百胜中国如何玩转 Pulsar~

本文整理自 Chunxiang Yan 在 Pulsar Summit 上的演讲《Awesome Pulsar in YumChina》。背景介绍Chunxiang Yan,百胜中国后端工程师,自2021年起负责维护和演进百胜中国的 Pulsar PaaS 集群,在使用Pulsar过程中积累了丰富的实践经验和专业知识…...

CLIP-GmP-ViT-L-14保姆级教程:错误日志排查——‘CUDA out of memory‘应对

CLIP-GmP-ViT-L-14保姆级教程:错误日志排查——CUDA out of memory应对 你是不是刚把CLIP-GmP-ViT-L-14模型跑起来,正兴奋地想试试它的图片匹配能力,结果屏幕上突然蹦出来一行刺眼的红色错误:CUDA out of memory? 别…...

ChatGLM3-6B功能体验:Streamlit重构版,流式输出+智能缓存超流畅

ChatGLM3-6B功能体验:Streamlit重构版,流式输出智能缓存超流畅 1. 引言:当大模型遇上丝滑交互 想象一下这个场景:你有一个强大的本地大模型,但每次对话都要等它“思考”半天,界面卡顿,刷新页面…...

AudioLDM-S音效库展示:500+高质量音效实例欣赏

AudioLDM-S音效库展示:500高质量音效实例欣赏 不知道你有没有过这样的经历:深夜赶一个视频项目,就差一个“雨夜中远处传来的狗吠声”来烘托气氛,结果翻遍了整个音效素材库,要么是单纯的雨声,要么是突兀的狗…...