要素服务之Fetch Siz

【PostgreSql】解决postgresql设置fetchsize也无法流查询的思路及方案 前言 最近公司有一个客户是使用PostgreSql来存储数据的,然后在导出功能中,发现在大数据的情况下,内存会一直增长直至内存溢出。因为按道理导出功能是设置了fetchSize来进行流查询了,按道理是不会内存溢出的。然后排查发现,获取数据是全部获取了,那肯定会内存溢出了。 目录 1、排查思路 2、解决过程 3、源码解析 ... 阅读详情

MapGuide服务器在将查询结果返回给客户端的时候,并不是将查询结果一次性返回给客户端,它使用了类似于数据库中Fetch Size的技术来改善读取查询结果集的性能。假设Fetch Size为100,当服务器端执行完查询得到结果集后,服务器端会创建一个服务器端结果集读取器,从要素源读取前100个结果,然后将这100个结果一次性返回给客户端,并且在客户端创建一个客户端结果集读取器,MgDataReader、MgFeatureReader和MgSqlDataReader都是客户端结果集读取器。当用户调用客户端结果集读取器的方法ReadNext()读取到第101个结果的时候,客户端结果集读取器会发送请求给服务器以返回第101~200个结果,对应的服务器端结果集读取器会读取第101~200个结果返回给客户端;当用户继续调用方法ReadNext()读取到第201个结果的时候,客户端结果集读取器会发送请求给服务器以返回第201~300个结果,如此反复,直到服务器返回给客户端所有的结果。当客户端关闭或销毁客户端结果集读取器之后,对应的服务器端结果集读取器也会随之关闭和销毁。

从Fetch Size的工作流程,我们可以看到:

l  Fetch Size 是设定客户端读取查询结果时每次从服务器端返回的结果数,它是一个性能调节参数,它只是影响了客户端和服务器端返回查询结果的往返次数,并不会影响查询结果。

l  每个客户端结果集读取器对应一个服务器端结果集读取器,在客户端结果集读取器关闭或销毁之前,服务器端结果集读取器始终驻留在服务器端,并且占用FDO连接池中的一个连接以读取第n个FetchSize个结果集返回给客户端,所以在不需要客户端结果集读取器的时候要马上关闭和销毁它,这样服务器结果集读取器才能随之销毁,从而释放占用的FDO连接使其它客户请求能够重用此FDO连接,例如在下面的代码中读取完所有的结果后,马上调用MgReader::Close()方法关闭客户端结果集读取器。

$reader = $featureService->ExecuteSqlQuery($featureSourceId, $commandText);

while ($reader->ReadNext())

{

    ......

}

$reader->Close();

Fetch Size是一个性能调节参数,服务器端无需一次性地将查询结果集返回给客户端,而是按需分批分次地将结果集返回给客户端,减少了单次网络传输的数据,提高了客户端的响应速度。当Fetch Size的值越大,客户端和服务器端通信的次数越少,单次网络传输的数据越多;Fetch Size的值越小,客户端和服务器端通信的次数越多,单次网络传输的数据越少。所以,用户需要根据MapGuide服务器使用的网络带宽、并发访问的用户数等信息调整Fetch Size的值。

通过修改MapGuide服务器配置文件serverconfig.ini中DataCacheSize属性的值可以配置FetchSize的大小,下面的示例中将FetchSize的大小设置为100。

[FeatureServiceProperties]

DataCacheSize = 100

JBOSS连接池调优—合理的设置fetchsize 1. 什么是fetchsize? 1.1 Oracle中的fetchsize 先来简单解释一下,当我们执行一个SQL查询语句的时候,需要在客户端和服务器端都打开一个游标,并且分别申请一块内存空间,作为存放查询的数据的一个缓冲区。这块内存区,存放多少条数据就由fetchsize来决定,同时每次网络包会传送fetchsize条记录到客户端。应该很容易理解,如果fetchsize设... 阅读详情

相关推荐

Chrome DevTools字体太小?教你用CSS定制开发者工具界面(附完整代码包)

本文针对Chrome DevTools字体过小、界面不适配高分辨率屏幕的痛点,提供了一套完整的CSS定制解决方案。通过解析DevTools样式注入机制,指导开发者创建Chrome扩展,利用manifest.json配置和CSS选择器精准调整字体、行高及界面样式,并附赠完整代码包,帮助开发者打造个性化的舒适调试环境。

weixin_27960253的博客 409

mysql的jdbc中fetchsize支持的问题

MySQL的JDBC OutOfMemoryError: Java heap space异常         MySql数据库通过JDBC对大表进行查询时抛出java.lang.OutOfMemoryError: Java heap space异常。这是因为默认情况下,MySQL的JDBC驱动会一下子把所有row都读取下来,这在一般情况下是最优的,因为可以减少Client-Serve

gladmustang的专栏 1万+

upload-labs文件上传实战训练指南

在现代Web应用开发中,文件上传是一项基础且关键的功能,广泛应用于用户资料管理、内容发布、数据导入等场景。其核心流程通常包括:用户选择文件、前端处理与校验、上传请求发送、后端接收与存储、以及安全性校验等多个环节。文件上传功能的实现需要前后端紧密协作。前端主要负责文件选择、预览、格式校验与数据封装;后端则承担接收文件、存储管理、安全防护等任务。一个健壮的上传功能还需考虑大文件支持、断点续传、跨域配置、上传进度反馈等优化点。掌握文件上传的全流程,是提升Web开发能力的重要一环。

weixin_36001279的博客 886

Oraclearraysize和fetchsize参数与性能优化说明

原 Oracle arraysize 和 fetch size 参数 与 性能优化 说明https://blog.youkuaiyun.com/tianlesoftware/article/details/6579913版权声明: https://blog.youkuaiyun.com/tianlesoftware/article/details/6579913 一. 参数说明 1.1 arraysize 参数 ...

rede 2533

clumsy一款模拟弱网的工具

利用封装 Winodws Filtering Platform 的WinDivert 库, clumsy 能实时的将系统接收和发出的网络数据包拦截下来,人工的造成延迟,掉包和篡改操作后再进行发送。无论你是要重现网络异常造成的程序错误,还是评估你的应用程序在不良网络状况下的表现,clumsy 都能让你在不需要额外添加代码的情况下,在系统层次帮你达到想要的效果。

klb5555的专栏 2551

大模型-高通平台性能测试示例-2

在QNN中,可以使用(genis-t2t-run)和这两个工具来进行推理的性能分析。支持在QNX操作系统或Android操作系统上进行性能分析。:提供基本的性能数据,如运行时间、资源消耗等。:提供更详细的性能数据,可能包括各个操作的执行时间、资源使用情况等。:是指在性能分析的同时进行代码质量检查,以发现潜在的问题。:是指跟踪和分析神经网络中各个操作的性能,以优化网络结构或参数。

点滴的岁月 1492

MNIST 中 fetch_mldata 指定正确的数据集路径

MNIST 中 fetch_mldata 指定正确的数据集路径 1.MNST数据集文件下载链接 链接:https://pan.baidu.com/s/1VFI8RMVLyGHTmZJI6siz-g 提取码:1234 2.将下载的数据集文件放到scikit数据根目录下的mldata目录,这个是默认路径 默认根目录查询方式: 1 from sklearn.datasets.base import get_data_home 2 print (get_data_home()) 可以查询出本地电脑的存储路径为: C

weixin_38687607的博客 1103

摄像头读取出现VIDIOC_STREAMON: No space left on device 错误

先说下原因,linux中为usb camera提供了一个标准的V4L2的驱动以方便使用,只要符合驱动规范就可以实现即插即用usb camera设备,即免驱动安装。 但市面上的USB 摄像头都是2.0的。usb bus的 bandwidth是有限的,而V4L2驱动采用的是贪心原则,即camera会要求获取最大带宽;因此将两个camera接入一路usb bus,打开第二个camera(尤其是采用YUV...

houge101的博客 9288

07. 分页写法小结

07. 分页写法小结 原文:07. 分页写法小结分页的实现方式有这几种:1. 在前台程序中,将所有的记录都读到本地,前台程序通过游标在数据集中上下移动,数据量大的话,性能很差,不推荐;2. 前台程序请求某一页数据时,到数据库做一次查询,返回符合条件的相应记录,这也是目前常用的方法;3. 对方式2的改进,当请求某一页时,同时将前后几页一并返回,用...

weixin_30830327的博客 66

④ Django创建用户中心应用users,扩展用户信息

本章配套视频教程 Django创建用户中心应用users,扩展用户数据 在settings.py文件中配置项目 1、语言配置:LANGUAGE_CODE = 'zh-hans’ 2、时区配置:TIME_ZONE = 'Asia\Shanghai’ 3、模板路径配置:‘DIRS’: [os.path.join(BASE_DIR, ‘templates’)], 并创建templates文件

轻编程的博客 671

Android14 SystemUI如何实现下拉菜单栏高斯模糊背景效果(类似于毛玻璃效果)

我们都知道,从Android12起,下拉菜单栏控制中心都是黑色的,看起来非常不美观,而且国内的手机系统UI都做的比较美观,大部分的下拉菜单UI背景都是实现了高斯模糊效果,所以客户也会要求实现类似于这样的效果。在以前的Android项目中,实现下拉菜单栏的模糊背景就是通过截图的方式进行替换背景,而这种方式下拉菜单背景极易替换不了,就算是在各个地方都适配,还是有概率在复杂场景或者一些测试手法下出现背景是黑的情况,并且这种方式还比较影响性能,毕竟每次都要去截图一次,多做了额外的事。

热衷于Android Framework和系统APP的修改经验分享 1793

linux编程的108种奇淫巧计-7(Lock-free实验)

从该博客开始,会有一些小系列预计有4-5篇博文来介绍,锁的应用和实践,我们常常听到spin lock,wait-free,lock-free,这到底是怎么回事,我们能不能自己实现一个spin lock,原理是什么?这个小系列就讨论这个内容。         首先我们来看两个基本操作compare_and_swap和fetch_and_add,基本上lock-free的操作都会依赖这两个基本的原

pennyliang的专栏 1万+

计算机组成原理(第三版)唐朔飞-第四章存储器-课后习题

计算机组成原理(第三版)唐朔飞-第四章存储器-课后习题

weixin_45735391的博客 17万+

oracle 10046事件 深入分析Oracle数据库的启动初始化过程 ---> 帮忙分析数据库启动失败的原因

oracle 10046事件 深入分析Oracle数据库的启动初始化过程 ---> 帮忙分析数据库启动失败的原因

weixin_38554915的博客 3051

库存管理系统项目部署方案(基于jdk8)

不需要安装到服务器,运维本地安装就行,主要是用来编译前端代码的。构建完成后将dist文件夹复制到服务器内。

程序员诚哥 2574

AI Agent Harness Engineering 的“热插拔”能力:模块化设计思路

本文我会结合我在大厂做AI Agent平台的实战经验,从核心概念、架构设计、代码实现、落地实战多个维度,给大家详细讲解AI Agent Harness Engineering的核心能力——热插拔的模块化设计思路。我们会从问题根源出发,一步步搭建一个完整的支持热插拔的Agent Harness框架,包含组件抽象、注册中心、生命周期管理、配置驱动、容错机制等核心模块。

AI天才研究院 501

oracle ora08103,ORA-08103对象不再存在问题分析

以下部分10046日志截取:CLOSE #4574899200:c=3,e=4,dep=1,type=0,tim=47159071133647=====================PARSING IN CURSOR #4574893000 len=83 dep=0 uid=0 oct=1 lid=0 tim=47159071134928 hv=506090881 ad='7000000a782...

weixin_35688303的博客 927

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

oracle查询报8103,ORA-8103 open – 提供7*24专业数据库(Oracle,SQL Server,MySQL等)恢复和Oracle技术服务@Tel:+86 13429648788...

数据库启动报ORA-08103朋友反馈,客户的一套sap历史数据系统,无备份,由于硬件故障导致,数据库启动报ORA-08103: object no longer exists错误,无法正常启动SMON: enabling tx recoveryMon Oct 12 09:51:56 2020Database Characterset is UTF8Opening with internal Re...

weixin_39814088的博客 223

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

oracle 启动 08103,数据库启动ORA-08103故障恢复 – 提供7*24专业数据库(Oracle,SQL Server,MySQL等)恢复和Oracle技术服务@Tel:+86 1342...

数据库在open过程报ORA-08103错误导致数据库无法正确启动Fri Jul 18 22:02:51 2014SMON: enabling tx recoveryFri Jul 18 22:02:51 2014Errors in file d:\oracle\product\10.2.0\admin\kemu3\udump\kemu3_ora_29788.trc:ORA-00604: ?? S...

weixin_28727321的博客 315

深度学习工具包 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")

查看mysql表的碎片率,及优化方法

查看mysql表的碎片率: SELECT TABLE_SCHEMA ,TABLE_NAME ,ENGINE ,ROUND(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024), 2) AS SIZE_MB ,ROUND(DATA_FREE/1024/1024,2) AS FREE_SIZ_MB FROM information_schema.TABLES WHERE DATA_FREE >=5*1024*1024

阳水平的博客 3268

oracle重命名sys,sys重命名 – 提供7*24专业数据库(Oracle,SQL Server,MySQL等)恢复和Oracle技术服务@Tel:+86 13429648788 - 惜分飞...

数据库启动报ORA-600 kokasgi1错误SMON: enabling tx recoveryDatabase Characterset is WE8ISO8859P1Errors in file /u01/app/oracle/diag/rdbms/xifenfei/xifenfei1/trace/xifenfei1_ora_10056.trc (incident=269259):ORA...

weixin_32200729的博客 344

rman hang on SQL*Net message from client

有这样一个问题,平台为HP-UX(B.11.31 U ia64),Oracle版本为10.2.0.4 single instance,RMAN自动备份autobackup controlfile时出现hang症状,等待事件为SQL*Net message from client, 这还仅仅是使用最简单的NOCATALOG+ Disk Device的情况,没有MML层面的活动。...

weixin_34159110的博客 155
上一篇: 要素服务之FDO连接池
下一篇: 要素服务之缓存
MapGuide_Inside
博客等级 码龄17年 340粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值