拒绝玄学调优!YashanDB科学分析精准狙击慢SQL

mysql 慢sql 分析工具pt-query-digest pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog、General log、slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdump抓取的MySQL协议数据来进行分析。可以把分析结果输出到文件中,分析过程是先对查询语句的条件进行参数化,然后对参数化以后的查询进行分组统计,统计出各查询的执行时间、次数、占比等,可以借助分析结果找出问题进行优化。pt-summary。 阅读详情

在数据库管理中,SQL查询性能优化是最常见且关键的任务之一。尤其是在大型应用程序和高并发环境中,慢SQL查询会严重影响系统的响应时间和吞吐量,导致用户体验下降。本文将详细介绍如何通过视图、执行计划、AWR报告、慢日志、系统资源等方面定位、分析并优化慢SQL查询,以提升数据库性能。

1、什么是慢SQL?

慢SQL指的是那些执行时间过长的SQL查询。不同数据库系统对慢查询的定义标准不同,不同复杂程度的查询语句对慢查询的界定也存在较大差异。在高并发环境下,慢SQL可能会成为性能瓶颈,影响整个系统的响应速度和可扩展性。

2、定位慢SQL

定位慢SQL查询是性能优化的第一步,先找到慢SQL语句才能“对症下药”。YashanDB有着丰富的定位慢SQL方法,可以通过SQL视图,自动工作负载存储库报告(AWR),数据库系统的慢日志等方法来定位。

YashanDB数据库中,有大量SQL相关视图来记录SQL语句的相关信息,如表1所示,列出部分相关SQL视图:

通过查询这些视图中执行时间列,并按其降序输出就能获取相关慢SQL。其中视图相关字段如表2所示:

**注:**以下各SQL语句在不同环境中执行,查询结果存在差异。

**例:**查询执行时间最长的TOP3 SQL,可以使用如下SQL语句进行查询,可以得到查询的SQL语句以及对应的执行时间(毫秒),结果如图1所示:

select sql_text,elapsed_time from v$sqlarea order by elapsed_time desc limit 3;

执行计划可用于分析慢SQL,SQL视图也能查询慢SQL语句当时的执行计划。YashanDB的SQL_PLAN视图可用于慢SQL执行计划查询,该视图的部分字段如表3所示:

例:查询执行时间最长SQL的执行计划以及时间消耗,结果如图2所示:

select operation, cost from v s q l _ p l a n w h e r e s q l _ i d i n ( s e l e c t s q l _ i d f r o m v sql\_plan where sql\_id in (select sql\_id from v sql_planwheresql_idin(selectsql_idfromvsqlarea order by elapsed_time desc limit 1);

AWR(Automatic Workload Repository)为自动工作负载存储库,它的核心是数据库每隔一段时间,将数据库的状态数据保存一份快照到数据库相关历史表中;然后通过生成AWR报告来分析数据库是否存在异常,如慢SQL等。

YashanDB的AWR通过内置高级包DBMS_AWR实现,主要包含两方面功能:快照管理与报告生成。快照的管理包括快照生成、快照配置更改、快照清理功能;报告生成的原理是将两次快照之间的SQL信息做差值,并将结果整理后输出。对应的SQL语句执行命令如表4中所示。

其中可以通过SYS.WRM _ S N A P S H O T : 查看当前已经生成的快照信息;通过 S Y S . W R M \_SNAPSHOT: 查看当前已经生成的快照信息;通过SYS.WRM _SNAPSHOT:查看当前已经生成的快照信息;通过SYS.WRM_WR_CONTROL:查看快照保存时间跟生成间隔。通过命令可以生成如图3的AWR报告,报告包含中数据库信息,快照信息,等待事件、多维度统计慢SQL语句。

YashanDB提供慢查询日志功能来记录执行时间超过阈值的查询。在使用慢日志功能时需要做如下设置:

1、开启慢日志功能,将配置参数ENABLE_SLOW_LOG设置为true。

2、设置慢日志阈值,对应配置参数SLOW_LOG_TIME_THRESHOLD;设置后执行时间超过阈值的会在日志中记录;SLOWLOG的目录在 YASDB_DATA/log/slow/slow.log。

图4为慢日志中的一条记录,时间阈值设置为100ms,记录了SQL语句、SQL_ID、运行时间、执行时间、返回结果集数目等信息。

在使用慢日志时有如下几点需要注意:

1、慢日志采用异步输出方式,即执行完不会立即输出,而是放到日志队列里,通过后台线程分批次输出。

2、日志队列最大长度256。

3、基于上述原理,在掉电情况下可能会丢失日志;如果时间阈值设置过小,致使队列满的情况下亦会丢失日志。

4、主备环境中,备库将SLOW_LOG_OUTPUT设置为FILE时,慢日志输出到文件,将备库的SLOW_LOG_OUTPUT设置为TABLE虽然不会报错,但不会生效,日志也不会继续输出到文件。备库SLOW_LOG 的内容是直接同步的主库的 S L O W _ L O G 的内容是直接同步的主库的SLOW\_LOG 的内容是直接同步的主库的SLOW_LOG。

1、慢SQL如何产生的?

  • **编写较低效的SQL:**编写的SQL执行了不必要的操作,那么优化器将无法提升其性能,例如:没有连接条件的连接语句(笛卡尔积)、指定大表做驱动表、指定UNION而不是UNION ALL、使用子查询针对外部查询中的每一行执行等。

  • **执行计划不是最优:**表的连接顺序、统计信息、使用的索引、算子、过滤条件的应用顺序等都会影响执行计划。此外,使用低选择率的谓词条件,可能会在大表上使用全表扫描而不是索引;或者使用过时的统计信息。

  • **资源问题:**影响因素包括等待事件、内存、IO、网络、锁。

2、分析慢SQL

分析慢SQL需要依赖数据库已有的功能实现,以及相关从业人员的数据库能力。分析出慢SQL的性能瓶颈才有利于进一步的SQL调优。YashanDB提供大量的慢SQL分析方法,可以通过各种内存动态视图、系统级的配置参数以及执行计划等来辅助分析出语句的瓶颈点。

系统的资源是有限的,数据库只有利用好这些资源,才能将数据库的性能发挥到最优。在YashanDB中有大量的分析类视图,如:各内存使用情况、等待事件、锁使用等来协助分析慢SQL。表5中列举出部分分析类动态视图:

表中的视图在不同场景中有助于快速分析出慢SQL的瓶颈,以下列举部分视图的分析场景:

V$GLOBAL_MPOOL:

系统并发场景。当整体执行变慢时,就可以查看视图确认是否内存不足;如果不足则会触发内存extend以及recycle,额外增加开销,影响SQL执行速度。

V$PLANCACHE:

sqlmainpool内存不足时,会触发lru淘汰,将缓存对象换出,这样会导致SQL语句做硬解析。如果一个业务场景前面跑了大量语句,大量SQL占用plancache内存,导致后面的语句在执行完后就被淘汰,每次执行都需要重新走解析,生成计划,那业务系统的整体执行效率会大打折扣。

V$SPINLOCK:

对公共资源进行访问时,数据库通过锁机制来保证资源获取的正确性。通过spinlock视图就能查看出哪些资源的竞争过大导致等待次数增加,锁等待时间变成从而影响整个SQL运行效率。

V$VMSTAT:

数据库执行算子需要使用vm内存存储中间计算结果,当SQL语句很复杂时并且数据量比较大时,大量的内存需求会使vm与磁盘做换入换出来满足;而io的频繁读写会消耗大量时间,SQL语句执行自然变慢。可以通过视图观测SQL语句执行前后是否有换入换出作为一种分析手段。

从上述章节可以得到SQL语句性能的好坏跟数据库内存息息相关,不同的内存配置在特定场景下对性能有着极大的影响。本章节介绍YashanDB数据库中部分配置参数如表6所示,并指导如何配置才能获得较好的性能效果。

通过执行计划来分析数据库SQL性能是最常用,也是最重要的手段之一。执行计划上展示了查询的逻辑流程,包括表连接方式、聚合、排序、过滤等。这些信息对于诊断性能瓶颈、优化查询速度和提高资源利用率至关重要。YashanDB可以开启autotrace开关查看执行计划的详细信息,包括算子实际执行时间,算子执行时返回的结果集大小,评估的结果集大小,算子调用次数等。关于SQL语句应该选择何种计划,各算子的最优应用场景,可以阅读上一篇SQL优化系列文章《两个案例带你看懂YashanDB执行计划》进行深入了解。

慢SQL查询会对系统性能产生负面影响,优化慢查询是数据库中的重要任务。通过合理使用系统资源、分析执行计划、优化查询逻辑和连接操作,可以显著提高SQL查询的效率。性能优化是一个持续的过程,随着业务和数据量的增长,数据库查询的优化工作也需要不断进行调整和优化。YashanDB所提供的慢SQL定位与分析还有很多,更多的信息欢迎到崖山官网文档中心(https://doc.yashandb.com/)进行查阅。

SpringBoot+Vue+MySQL 高校学科竞赛平台 完整可运行版(源码+文档) 本项目基于SpringBoot+Vue+MySQL构建高校学科竞赛管理平台,覆盖学生、教师、领队教师、管理员四大角色,实现竞赛发布、报名、刷题、评分、公示等全流程闭环管理。系统架构清晰,技术主流,配套完整源码、数据库脚本、万字论文、开题报告、答辩PPT及部署文档,支持一键运行,适用于毕业设计、课程设计及院系二次开发,真正实现“开箱即用”。 阅读详情

相关推荐

用Arduino和8个舵机,从零搭建一台能走路的并联腿机器狗(附完整代码与3D模型)

本文详细介绍了如何用Arduino和8个舵机从零搭建一台能走路的并联腿机器狗,包括硬件准备、结构组装、电路系统搭建、运动算法实现和Arduino编程。通过完整的代码与3D模型,帮助创客深入理解机器人运动原理,实现稳健行走的8自由度机器狗。

weixin_30482383的博客 702

mysql慢sql分析平台_分析Mysql慢日志脚本及快速定位慢Sql

分析Mysql慢日志是运维工作中,不可少的。要快速定位慢Sql,以及发现后优化Sql及修改业务,保证数据库稳定高效地工作。下面是我工作中解决的思路...1.先查看本地数据库慢日志文件2.编写分析慢日志脚本#!/usr/bin/python#coding=utf-8#字符编码importre#导入正则匹配模块importsys#导入sys模块importtime#导入时间模块im...

weixin_29096377的博客 438

解密携程风控:user-dun算法中的自定义base64与多模式加密机制剖析

本文深入剖析了携程旅行APP风控核心组件libduncode.so中的user-dun算法。文章重点解密了其采用的自定义Base64编码机制与多模式加密选择逻辑,并详细阐述了如何通过动态分析与静态还原,理解算法与设备指纹的深度绑定关系,为逆向分析类似混淆加固的风控算法提供了系统的方法论。

weixin_29323049的博客 340

mysql慢sql分析平台_慢SQL分析工具 - __KK的个人空间 - OSCHINA - 中文开源技术交流社区...

分析mysql日志的工具:mysqldumpslowmysqlbinlogmyprofimysql-explain-slow-logmysql-log-filterpt-query-digestmysqlsla介绍mysqldumpslow 和 pt-query-digestmysqldumpslowmysql官方自带经常使用的参数:-s,是order的顺序al 平均锁定时间ar 平均返回记录时间...

weixin_36463088的博客 321

多机器人编队人工势场法协同避障算法原理及实现

ROS及SLAM进阶教程(十一)多机器人编队人工势场法协同避障算法原理及实现避障算法原理避障算法仿真 多机器人协同编队需要将理论和实践紧密地结合起来,其应用包括编队队形生成、保持、变换和路径规划与避障等等都是基于图论的理论基础完成的。 详细请参考ROS及SLAM进阶教程(八)多机器人协同编队算法原理及实现 自主避障功能是机器人编队在各种环境中保持自身安全的重要功能,在编队的基础上加入避障的功能,机器人可扫描到一定范围内的障碍物(包括其他机器人),在即将与之发生冲突时提前规避冲突,以保证自身的安全性,同时

Redglass的博客 1万+

10、犹豫双模糊TOPSIS算法:原理与实例解析

本文介绍了犹豫双模糊TOPSIS算法的基本原理与应用步骤,结合中国四家纺织公司的案例,详细解析了从构建犹豫双模糊决策矩阵、归一化处理、专家信息聚合,到确定正负理想解、计算距离与相对贴近度系数的完整决策流程。该方法有效应对决策者在评价过程中的犹豫性,适用于财务评估、项目选择等复杂多属性决策场景,具有较强的实用性和推广价值。

yhn45678901的博客 123

mysql慢sql分析平台_mysql的慢查询分析调优工具 show profile

mysql教程介绍慢查询分析调优工具推荐(免费):mysql教程(视频)继上一篇mysqldumpslow工具的讲解,今天来聊聊show profile。也是MySQL服务自带的分析调优工具,不过这款更高级,比较接近底层硬件参数的调优。查看show profile设置show variables like 'profiling%';//默认关闭,保存近15次的运行结果开启set profiling...

weixin_32568113的博客 292

【unity游戏开发入门到精通——UGUI】文本控件 —— TextetMeshPro新文本控件(TextMeshPro - Text(UI)和TextMeshPro - Text)

文本组件是UGUI中最常用的组件,它的作用是对文本数据进行处理并显示。UGUI的文本组件可以分两为种——Text旧文本控件、TextMeshPro新文本组件。本文主要是介绍TextMeshPro新文本控件,而TextMeshPro新文本控件又可以分为两种——TextMeshPro - Text(UI)和TextMeshPro - Text。TextMeshPro是Unity收购的一个第三方插件,现在已经自动内置到编辑器中,只要使用一次就会自动导入到工程。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 3768

利用YashanDB数据库实现快速数据检索

在单机部署中,YashanDB通过主备复制技术确保数据的一致性与高可用性,使得在数据检索过程中即使发生故障,仍旧能够保证业务的连续性。数据库管理者和开发人员应持续关注新技术的发展,不断积累和提升在数据处理和优化方面的能力,以便在各类应用场景下实现高效的数据管理和业务运行。切片存储通过将数据分散存储在不同的节点上,支持高并发分布式查询,从而提高了数据检索的处理速度和效率。通过在数据写入前的预处理和动态调整存储参数,YashanDB确保查询性能的稳定提升,减少了查询时引发的延迟与开销。

2501_91591875的博客 380

AUTOSAR EcuM模块介绍

AUTOSAR EcuM概述 AUTOSAR EcuM全称是Autosar ECU State Manager,位于Autosar BSW中System Service模块中,是一个独立于硬件的模块。 其主要作用是管理ECU上下电启动的状态,具体为: 初始化启动操作系统所需要的BSW(Basic Software)模块 为睡眠阶段和随后的唤醒完成微控制器的配置准备 管理ECU上的所有唤醒事件(EcuM通过唤醒验证协议验证已发生的唤醒,区分真实的唤醒事件,防止误唤醒) EcuM支持的特性列表 EcuM具有

酒无忧的博客 2996

python基础之语言发展历史

博主简介:原互联网大厂tencent员工,网安巨头Venustech员工,阿里云开发社区专家博主,微信公众号java基础笔记优质创作者,csdn优质创作博主,创业者,知识共享者,欢迎关注,点赞,收藏。 目录一、前言二、发展历史1、Python是一种面向对象的解释型编程语言2、Python常被称为胶水语言3、Python由Guido开发4、Python连续多年入选编程语言TOP105、Python的发展历史三、总结 一、前言   由于Python语言的简洁性、易读性以及可扩展性,它在网络爬虫、数据分析、.

jiankang66的博客 3349

性能测试mysql慢SQL定位以及分析方法

mysql slow SQL查询以及mysqlsla使用说明

莫离的博客 4819

Unity插件NodeCanvas之行为树的详细教程

NodeCanvas 是一个用于 Unity 的可视化脚本工具,主要用于游戏开发中的行为树、状态机和流程图的设计。它通过节点编辑器的方式,让开发者可以更直观地创建和管理游戏逻辑,减少了传统编码的复杂性。今天我们就来详细介绍一下NodeCanvas插件。

TxNet 1962

慢SQL,压垮团队的最后一根稻草No.92

先说结论,我支持将逻辑写在 Java 等应用系统中。背景:今天只讨论一种应用模式,就是最普遍的,前端实时调用后端web服务,服务端经过DB的增删改查作出响应的应用。至于离线数据分析,在线规则引擎模板执行,流式计算等不在本次讨论范畴。重SQL开发的场景先看一个例子吧。用经典的 Controller Service DAO 开发模式描述。| city表     || --------- || city...

u010459192的博客 1202

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Docker Compose:搭建本地多服务开发环境

从一个 Java API、PostgreSQL 和 Redis 开始,配置服务名、端口、环境变量、健康检查、数据卷和依赖关系。理解 Compose 文件如何被解析、项目如何隔离,以及哪些数据不能依赖“重建容器”保留,能够把个人开发环境整理成团队可复用的启动入口。

m0_62221377的博客 477

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

AI全栈实战 | 3.9-01 爬虫入门:requests 加 BeautifulSoup 三分钟跑通,但 90% 的人栽在这 4 个“礼貌“问题上

⚠️:本文内容仅用于。请遵守目标站点的服务条款与相关法律法规,不得对目标服务造成负担,不得采集、传播个人隐私数据。技术是中性的,边界在你手里。爬虫的入门技术(requests 发请求 + BeautifulSoup 解析)三分钟就能学会。真正区分"会用爬虫"和"会做爬虫的人"的,是这篇我们跑通"请求→解析→存储"的最小闭环,然后重点把"合规与礼貌"这根弦给你绷上。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 432

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【基于 WebSocket 的多用户网页五子棋】—— 数据管理模块

但行好事,莫问前程

qq_42996461的博客 250

C++算法(七)

C++ stack算法题和一些客观题

2503_94479566的博客 378

OpenClaw 深度调查:把 AI 助手做成你自己的控制平面

对 openclaw/openclaw 的完整技术尽调:Gateway 架构、Agent 运行时、工具与沙箱、30 个消息通道、181 个插件、安全信任边界、工程代价与采用建议。17 章 / 10 张图,全部数字标注口径,数据截至 2026-10-31。

厚积薄发 294

IDEA 简介:从零认识 IntelliJ IDEA

IDEA 全称,是由 JetBrains 公司开发的一款主流 Java 集成开发环境(IDE)。它集代码编辑、编译、调试、测试、版本控制、构建管理等功能于一体,被大量 Java 开发者视为日常开发的首选工具。所谓 IDE(Integrated Development Environment,集成开发环境),就是把写代码所需的各类工具整合到同一个界面中。相比只用文本编辑器加命令行编译,IDE 能显著减少重复操作,让开发者把精力集中在业务逻辑上。

ztI10的博客 176

TransactionInactiveError:await 之后事务已经不活跃了

TransactionInactiveError 出现于 IndexedDB 事务已结束(非 active 状态)时调用 put、get 等操作。常见于 await 后或 setTimeout 中执行请求,因任务已完成,事务已提交或进入 finished 状态。请求必须在创建事务的同一任务中挂起,否则无效。解决方法:在 onsuccess 回调内同步发起后续操作,或提前将所有请求挂入事务。避免在异步上下文中使用事务操作,确保请求在事务活跃期内完成。

qq_40822000的博客 159

云计算课程小组PPT汇报任务书

36人分为6组,每组6人;形式:生活案例调研 + 理论解读;汇报时长7‑9min;PPT建议10‑14页。

Michelle8023的博客 207

大表 ALTER TABLE 怎么做?NineData OnlineDDL 配置与执行实践

介绍NineData OnlineDDL大表变更实践,涵盖执行策略、切表控制、拷贝批次与可视化进度追踪。

dbasenewbie的博客 295

软件项目交付时,源代码之外还应该交付哪些技术资料?

软件项目交付时,除可运行程序外,还应核对源代码、数据库结构、接口文档、部署运维、测试验收和账号资产。本文从实际交付环节拆解完整资料清单,并说明合同如何约定交付范围、知识产权与维护边界。

chengduyoushu的博客 305

Axum 初步入门学习笔记

)自定义错误实现后,可以直接作为Result的ErrAxum 是一个构建在 Tokio、Tower、Hyper 之上的 Rust Web 框架,核心能力是:Router 路由、Extractor 提取器、Tower 中间件、IntoResponse 响应机制、State 共享状态。那张分层架构图是“地图”不是“说明书”:它帮你建立全局观,但 Service、Repository、数据库、Redis、MQ 都是你自己在 Handler 内部调用的业务/基础设施层,不是 Axum 自带的。

weixin_43219667的博客 182

MySQL报Too many open files?句柄耗尽的排查与参数配置

文章讲清 max_connections 与 open_files_limit 两个额度、句柄被谁占走、分区表为什么最容易踩,给出从 error log 到 /proc/pid/limits 的定位顺序与句柄预算算法。

「一个在数据库赛道上边学边分享的学妹」——聚焦国产数据库/信创方向、分享学习笔记、踩坑经验和行业观察。 336
上一篇: YashanDB dblink语法
下一篇: YashanDB expr语法
YashanDB
博客等级 码龄6年 2736粉丝 716原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值