sql I/O的五分钟法则

1987年提出的五分钟法则认为,如果数据在五分钟内被频繁访问,则应保留在内存中;否则保存在硬盘上。随着闪存技术的发展,这一法则依然适用,但适用于更大容量的数据块。

I/O的五分钟法则

在 1987 年, Jim Gray 与 Gianfranco Putzolu 发表了这个"五分钟法则"的观点,简而言之,如果一条记录频繁被访问,就应该放到内存里,否则的话就应该待在硬盘上按需要再访问。这个临界点就是五分钟。 看上去像一条经验性的法则,实际上五分钟的评估标准是根据投入成本判断的,根据当时的硬件发展水准,在内存中保持 1KB 的数据成本相当于硬盘中存据 400 秒的开销(接近五分钟)。这个法则在 1997 年左右的时候进行过一次回顾,证实了五分钟法则依然有效(硬盘、内存实际上没有质的飞跃),而这次的回顾则是针对 SSD 这个"新的旧硬件"可能带来的影响。




把子类NstStatusMonitor的cpp和h,单独拿出来用g++ -o NstStatusMonitor -I/opt/CIAP/include -L/opt/CIAP/lib -liap_NOS_Pool_ main.cpp NstStatusMonitor.cpp NstStatusMonitor.h可以编译成功,但是,直接在项目make报错 g++ -ggdb -Wall -DIAP_DB_MYSQL -DIAP_DB_SQLSERVER -DCIFXDN -fPIC -fpermissive -w -DIAP_RTOS -DVERSION_INFO=\"1.1.0\" ./src/standardTM.cpp ./obj/Aligner/NstAligner.o ./obj/Aligner/NstFuncAligner.o ./obj/Aligner/NstPhyAligner.o ./obj/Base/Monitor/NstGuardAction.o ./obj/Base/Monitor/NstCheckItem.o ./obj/Base/Monitor/NstAppDataLogMonitor.o ./obj/Base/Monitor/NstSInterlock.o ./obj/Base/Monitor/NstStatusMonitor.o ./obj/Base/Monitor/NstVInterlock.o ./obj/Base/Alarm/NstClearAlarmIncident.o ./obj/Base/Alarm/NstAlarmParser.o ./obj/Base/Alarm/NstAlarmObserver.o ./obj/Base/Module/NstAppService.o ./obj/Base/Module/NstFunctionalModel.o ./obj/Base/Module/NstMaintainModel.o ./obj/Base/Module/NstOperationalProcess.o ./obj/Base/Module/NstStation.o ./obj/Base/Module/NstChamber.o ./obj/Base/Module/NstEtchTMPlatform.o ./obj/Base/Module/NstBuffer.o ./obj/Base/Module/NstRorChecker.o ./obj/Base/Module/NstOperationalModel.o ./obj/Base/Module/NstModule.o ./obj/Base/Module/NstControlObjectEX.o ./obj/Base/Module/NstSimulatePM.o ./obj/Base/Util/NstNumberArrayTool.o ./obj/Base/Util/NstVirtualButton.o ./obj/Base/Util/NstVersion.o ./obj/Base/Util/NstAlarmTool.o ./obj/Base/Util/NstAliasExport.o ./obj/Base/Util/NstXmlGetter.o ./obj/Base/Util/NstTimeDiff.o ./obj/Base/Util/NstHeartBeatMachine.o ./obj/Base/Util/NstConditionUtil.o ./obj/Base/Util/NstUtil.o ./obj/Base/Util/NstStrTool.o ./obj/Base/Util/NstMapTool.o ./obj/Base/Util/NstPressureCondition.o ./obj/Base/Util/NstCTCExport.o ./obj/Base/Util/NstTimeSynchronizer.o ./obj/Base/Util/NstPressureValue.o ./obj/Base/Util/NstAutoLoad.o ./obj/Base/Util/NstTimeConsumeManager.o ./obj/Base/Util/NstCounterTimer.o ./obj/Base/Util/NstMathTool.o ./obj/Base/Util/NstUTime.o ./obj/Base/Util/NstAsyncCommConfig.o ./obj/Base/Util/NstEventLogger.o ./obj/Base/Util/NstHex.o ./obj/Base/Util/NstVirtualResetButton.o ./obj/Base/Exception/NstConfigException.o ./obj/Base/Exception/NstTMCException.o ./obj/Base/Process/NstAppRcpBody.o ./obj/Base/Process/NstProcessLogger.o ./obj/Base/Process/NstProcessChamber.o ./obj/Base/Process/NstProcessMonitor.o ./obj/Base/Process/NstProcessRecovery.o ./obj/Base/Process/NstTransRecovery.o ./obj/Base/Process/NstAppRcpStep.o ./obj/Base/Process/NstTransferChamber.o ./obj/Counter/NstGasCounter.o ./obj/Counter/NstLiterTorrCounter.o ./obj/Counter/NstRorCounter.o ./obj/Counter/NstLifeRatioCalculator.o ./obj/Counter/NstMaterialCounter.o ./obj/Counter/NstDeviceStatusCounter.o ./obj/EtchAdaptor/LoadLock/NstEtchMaintHeaterLoadLock.o ./obj/EtchAdaptor/LoadLock/NstEtchOprHeaterLoadLock.o ./obj/EtchAdaptor/LoadLock/NstEtchMaintLoadLock.o ./obj/EtchAdaptor/LoadLock/NstEtchMaintLoadLockVacSys.o ./obj/EtchAdaptor/LoadLock/NstEtchMaintHeaterLoadLockVacSys.o ./obj/EtchAdaptor/LoadLock/NstEtchFuncLoadLock.o ./obj/EtchAdaptor/LoadLock/NstEtchOprLoadLock.o ./obj/EtchAdaptor/LoadLock/NstEtchFuncHeaterLoadLock.o ./obj/EtchAdaptor/Vacuum/NstEtchVacuumSystem.o ./obj/EtchAdaptor/LoadLockProcess/NstEtchMotorPin.o ./obj/EtchAdaptor/LoadLockProcess/NstEtchLoadLock.o ./obj/EtchAdaptor/LoadPort/NstEtchMaintLoadPort.o ./obj/EtchAdaptor/LoadPort/NstEtchOprLoadPort.o ./obj/EtchAdaptor/LoadPort/NstEtchLoadPortDoor.o ./obj/EtchAdaptor/Chamber/NstEtchMaintVacSys.o ./obj/EtchAdaptor/Chamber/NstEtchOperationalBuffer.o ./obj/EtchAdaptor/Aligner/NstEtchMaintAligner.o ./obj/EtchAdaptor/Aligner/NstEtchOprAligner.o ./obj/EtchAdaptor/Robot/NstEtchOprVacRobot.o ./obj/EtchAdaptor/Robot/NstEtchOprRobot.o ./obj/EtchAdaptor/Robot/NstEtchMaintRobot.o ./obj/EtchAdaptor/Heater/NstLLHeaterProcessResource.o ./obj/EtchAdaptor/Heater/NstHeaterProcessResource.o ./obj/IOBridge/Ethercat/NstEtherCatCIFX.o ./obj/IOBridge/Ethercat/NstEtherCatPLC.o ./obj/IOBridge/Ethercat/NstEtherCatBaseDevice.o ./obj/IOBridge/Ethercat/NstEtherCat.o ./obj/IOBridge/PLC_Reserve/NstMotorPlc.o ./obj/IOBridge/PLC_Reserve/NstBeckhoffPlc.o ./obj/IOBridge/Robot/NstEthernetRobot.o ./obj/IOBridge/Base/NstSerialDevice.o ./obj/IOBridge/Base/NstEthernetSocket.o ./obj/IOBridge/EFEM/NstOcr.o ./obj/IOBridge/EFEM/NstEthernetLoadPort.o ./obj/IOBridge/EFEM/NstEthernetEFEM.o ./obj/IOBridge/Chiller/NstChiller.o ./obj/IOBridge/Chiller/NstModbusChiller.o ./obj/IOBridge/Chiller/NstChillerHRZ.o ./obj/IOBridge/Chiller/NstChillerHEC.o ./obj/IOBridge/TempCtl/NstModBusRTUTemplate.o ./obj/IOBridge/TempCtl/NstE5CTempCtl.o ./obj/IOBridge/Pump/NstCryoPump.o ./obj/LightTower/NstPhyLightTower.o ./obj/LightTower/NstLightTower.o ./obj/LightTower/NstPhyMALightTower.o ./obj/LoadLock/NstFuncLifter.o ./obj/LoadLock/NstPhyLifter.o ./obj/LoadLock/NstPhyPin.o ./obj/LoadLock/NstLoadLock.o ./obj/LoadLock/NstFuncHeater.o ./obj/LoadLock/NstPhyHeater.o ./obj/LoadLock/NstFuncChuck.o ./obj/LoadPort/NstOprLoadPort.o ./obj/LoadPort/NstPhyRorzeLoadPort.o ./obj/LoadPort/NstFuncLoadPort.o ./obj/LoadPort/NstPhyLoadPort.o ./obj/Robot/NstOprRobot.o ./obj/Robot/NstFuncRobot.o ./obj/Robot/NstTransOffsetAnalysis.o ./obj/Robot/NstPhyRobot.o ./obj/TempCtl/NstPhyTempControl.o ./obj/TempCtl/NstPhyChiller.o ./obj/TempCtl/NstFuncTempControl.o ./obj/Vacuum/NstFuncCryoPumpShi.o ./obj/Vacuum/NstPhyButterflyValve.o ./obj/Vacuum/NstVacuumSystem.o ./obj/Vacuum/NstPhyCryoPump.o ./obj/Vacuum/NstPhyFIBValve.o ./obj/Vacuum/NstPhyPC.o ./obj/Vacuum/NstPhyTurboPumpPF.o ./obj/Vacuum/NstPhyGauge.o ./obj/Vacuum/NstVacuumProcedure.o ./obj/Vacuum/NstFuncCryoPumpShiGroup.o ./obj/Vacuum/NstPhyMFC.o ./obj/Vacuum/NstPhyButterflyValveEC.o ./obj/Vacuum/NstFuncTurboPump.o ./obj/Vacuum/NstVacuumService.o ./obj/Vacuum/NstPhyValve.o ./obj/Vacuum/NstPhyPendulumValve.o ./obj/Vacuum/NstPhySlotValve.o ./obj/Vacuum/NstPhyDryPump.o ./obj/Vacuum/NstPhyPump.o ./obj/Vacuum/NstFuncCryoPump.o ./obj/Vacuum/NstPhyTurboPump.o ./obj/Vacuum/NstFuncRefill.o ./obj/Vacuum/NstPhyGateValve.o -I./src/Aligner -I./src/Base -I./src/Base/Enum -I./src/Base/Monitor -I./src/Base/Alarm -I./src/Base/Module -I./src/Base/Util -I./src/Base/Exception -I./src/Base/Process -I./src/Counter -I./src/EtchAdaptor -I./src/EtchAdaptor/LoadLock -I./src/EtchAdaptor/Vacuum -I./src/EtchAdaptor/LoadLockProcess -I./src/EtchAdaptor/LoadPort -I./src/EtchAdaptor/Chamber -I./src/EtchAdaptor/Aligner -I./src/EtchAdaptor/Robot -I./src/EtchAdaptor/Heater -I./src/IOBridge -I./src/IOBridge/Ethercat -I./src/IOBridge/PLC_Reserve -I./src/IOBridge/Robot -I./src/IOBridge/Base -I./src/IOBridge/EFEM -I./src/IOBridge/Chiller -I./src/IOBridge/TempCtl -I./src/IOBridge/Pump -I./src/LightTower -I./src/LoadLock -I./src/LoadPort -I./src/Robot -I./src/TempCtl -I./src/Vacuum/ -I/opt/CIAP/include -I/opt/Ice-3.1.4/include -I/usr/include -I/usr -I/opt/dnscan/include -I/usr/local/include/cifx -L/opt/CIAP/lib -liap_NOS_Pool_ -L/opt/Ice-3.1.4/lib -lIce -lIceUtil -lIceStorm -lmysqlpp -L/opt/dnscan/lib -ldnscan -lcurl -L/usr/local/lib -lcifx -lpciaccess -L/usr/lib -lxerces-c -o ./bin/debug/standardTM /usr/bin/ld: ./obj/Base/Monitor/NstStatusMonitor.o:(.data.rel.ro._ZTVN3Nst16NstStatusMonitorE[_ZTVN3Nst16NstStatusMonitorE]+0xe8): undefined reference to `non-virtual thunk to IAP::CONTROL::ControlMonitor::beginPostAlarm()' /usr/bin/ld: ./obj/Base/Monitor/NstStatusMonitor.o:(.data.rel.ro._ZTVN3Nst16NstStatusMonitorE[_ZTVN3Nst16NstStatusMonitorE]+0xf0): undefined reference to `non-virtual thunk to IAP::CONTROL::ControlMonitor::endPostAlarm()' /usr/bin/ld: ./obj/Base/Monitor/NstStatusMonitor.o:(.data.rel.ro._ZTVN3Nst16NstStatusMonitorE[_ZTVN3Nst16NstStatusMonitorE]+0x118): undefined reference to `non-virtual thunk to IAP::CONTROL::ControlMonitor::updateFromIncident(IAP::CONDITION::Incident*)' collect2: error: ld returned 1 exit status make: *** [Makefile:113: standardTM] Error 1
08-22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值