国产数据库迎来了一个高速发展的好时期,大量的企业用户正在将他们的数据库系统迁移到开源和国产数据库平台上。不过我们的国产数据库厂商在大量收割用户和“数钞票”的时候,广大的用户也在期盼着国产数据库变得更好用。SQL引擎是数据库最为核心的组件之一,因此大量国产数据库厂商在内卷竞争的时候,也需要能够做出一些让广大用户满意的功能来。
我们团队常年从事系统优化和数据库运维工具开发,这些年也接触了大量的用户,遇到过大量的数据库的坑,其中大部分是和SQL引擎有关的。因此今天我也代表广大的用户,给国产数据库提出一些关于SQL引擎方面的功能需求。希望在新一个版本的国产数据库中,能够看到这些功能被逐步实现了。
如果最希望国产数据库SQL引擎具有的功能就是全功能的HASH JOIN,大家都知道HASH JOIN是解决大数据量的表关联问题的最有效的连接方式。Oracle的HASH JOIN很强大,大量复杂的连接条件,都可以通过HASH JOIN来摆平。虽然现在很多开源、国产数据库都支持HASH JOIN,不过对HASH JOIN的支持上依然存在很多的盲点。如果遇到某些情况下,正好HASH JOIN无法使用,那么这条SQL就只剩下改写一条路了,这对于开发人员和DBA来说就是灾难。
第二个需求是SQL指纹和执行计划指纹。SQL指纹和SQL ID不完全是一回事,SQL ID只能指向一条唯一的SQL语句,而SQL指纹可以将一组存在略微差异的SQL语句归类为一种SQL。比如我们有一条SQL,除了某些大小写不同,其他是相同的,或者只有某个变量不同,其他是相同的,那么这些不同的SQL应该是同一条SQL,虽然这些SQL的SQL ID可能不同,不过这些SQL具有相同的指纹信息。通过这些指纹可以找到这类相同的SQL,进行统一的分析。执行计划指纹是指完全相同的执行计划,有可能不同SQL ID的SQL会使用相同的执行计划,在SQL中会有一个执行计划指纹的标识,指向这个执行计划。通过“执行计划指纹”,我们可以减少保存在内存中的执行计划数量,不管是否实现了全局执行计划,都可以将执行计划存储在一个共享内存区域中,供监控分析人员使用。类似的SQL指纹与执行计划指纹的功能实际上在Oracle数据库中大多数已经实现了,有兴趣的朋友可以去研究一下。
第三个需求是HINT,优化器的提升是相当困难的,需要大量的资金投入和时间的沉淀才可以做得越来越好,绝对无法依靠某几个聪明的高手就可以完成。如果遇到了CBO优化器真的无法做出正确判断,非要使用错误的执行计划的时候,开发人员还是可以通过HINT来强制矫正执行计划的。目前也有一些国产数据库和开源数据库支持hint了。不过在实现方法上,很多国产和开源数据库是通过外挂方式,利用数据库代码中的钩子来实现的,另外HINT支持的操作也还不是很完整。通过钩子的插件实现方式还是没有原生态的内核支持效率更高,在内核中直接支持丰富的HINT绝对是提升国产数据库SQL解析效率的必然途径。在HINT支持的操作方面,HINT不仅仅可以强制指定某种执行方案,还可以实现集群计算环境中的强读写分离、弱读写分离等功能。比如设定集群计算环境中MASTER选择的策略,以及指明某操作可以放置于只读节点,甚至指明某个操作是弱一致性操作,运行数据延时的最大限制等。这些HINT往往需要集群计算环境被纳入到数据库的内核中,而不仅仅是外挂的。
第四个需求是OUTLINES的原生态支持,当我们无法直接修改SQL,添加HINT来强制指定一个比较优化的执行计划的时候,就只能依靠OUTLINES了。传统的OUTLINES只能针对某个SQL ID,如果存在一些没有使用绑定变量的情况,就没办法通过SQL ID来指定OUTLINES。而往往一个系统中,这些SQL才是最常用的,也是最重要的。在OUTLINES的实现上,如果可以通过SQL指纹来设定,那么OUTLINES将会有更广泛的用途。
第五个需求是长时间运行的SQL执行进度可视化,提供一个类似于Oracle V$SESSION_LONGOPS的外部接口视图。不过希望能够比Oracle提供更多一些的信息。比如当前这个操作来自于哪个执行计划(执行计划指纹),以及这个操作处于执行计划的第几个步骤。当然这种SQL执行进度可视化仅仅显示长时间执行的操作,只有当执行计划中的某个算子执行成本超过一定阈值的时候,才需要输出到接口中,否则这种输出会影响SQL引擎的效率。这部分功能实现只要到某个算子级别就可以了,不需要做SQL级别的,SQL引擎还是性能为先,可视化是次要的。
其实SQL引擎中的优化器是改进难度最大的部件,需要有大量的应用案例来促进其优化和改进。而且有些优化器的功能优化难度极大,要做出一个优秀的CBO优化器其实不是一朝一夕就能够完成的。不过在优化器达到完美之前,必须是够用的。也就是能够尽可能让我们的开发人员不要总是面临SQL不改写就无法正常运行的困境。用户的应用场景十分复杂,因此作为国产数据库的开发者,集中力量去解决必须解决的问题,剩下的问题通过HINT,OUTLINES这样似乎不是太智能化的手段来弥补优化器的能力不足,也是必须的。不管怎么说,能够解决用户问题的数据库就是好数据库。

河北省南宫清泉药业有限公司生产的“甲茸壮骨通痹胶囊”是不是假药?
判断是不是假药最简单的鉴别方法:就是看包装上的批准文号。 1.药品在包装上一定能够看到:国药准字H(或Z.S.J.B)+年号+流水号,它的意思是国家批准生产的药品,字母分别代表化学药品、中成药、生物制品、进口药品、B保健药品。 2.如果包装上没有国药准字肯定是假药,或者有国药准字你到国家药监局数据库查询,输入国药准字和流水号查不到也是假药。 另外跟你讲一下保健食品(保健品)和食品的简单鉴别方法。 1.保健品在包装上一定能够看到:国食健字或卫食健字几个字,这分别是指国家药监局和卫生部批准生产的保健品,后面标的字母G指国产J指进口和编号,并且规定在包装或标签上角必须标有保健品的特殊标识:蓝帽子,蓝帽子下面有保健食品四个字。 2.食品在包装上一定有食品的批准文号,但食品的批准文号是各个省批准生产的,以各省的简称开头,如豫卫食字、粤卫食字、沪卫食字等,它的标识是一个方形的白底里有变形蓝Q字加白色的S。 QS下面有质量安全四个字。 你买药品时就要看有没有:国药准字。 有国药准字你还有疑问的话,你就登陆国家药监局数据库,查不到就是假药。 你买保健品时就要看:有没有蓝帽子和国家的批准文号。 你买食品时要看有没有QS标识和省里的批准文号。 (现在有些化妆品也有QS标识)这样解释你明白了吧。
怎样检测手机是行货还是水货?
水货与行货的区别:1.首先肯定无论是水货还是行货,都是正规厂家生产的。 水货不代表产品掺了水分造了假,不要把水货看作是冒牌、假冒,现在手机的科技集成程度还没有落后到能让人进行仿制,除非是OEM的产品,比如说科健与三星、联想与LG、首信和诺基亚,等等,但那也是正规的产权转让啊。 所以说水货与行货是没有本质的区别,本是同根生的,大伙不必把水货当成是很差很坏的。 2.那么水货与行货的区别在哪里呢?答案主要是在于地区的销售及其服务的不同区别。 所谓的水货行货的概念只是一个区域销售概念,或者你可以粗略地、主要地看作是一个伴随区域销售的服务概念,而不是一个本质概念。 其实在买的时候,我们可以看到一种来自厂商的有价值的服务无形地捆绑在产品销售地区的分部当中,无论你需要与否,至于费用是多少就见仁见智吧。 水货机就是翻新机吗?水货一般来说就是没有经过正规途径报关进入中国市场的东西,但绝大部分水货都是新机(除了14天机,二手机),由于外国市场上机器比国内便宜,尤其是因为新品国内外上市时间差或种种原因不在大陆上市的机器更是卖的好,所以很多不法商人冒险弄回来赚取巨额差价,数量巨大(是非常多)。 但是大部分水货机器绝对是全新的(洋垃圾除外),进岸时都是跟电脑件一样,单机头一箱子箱子的,绝少有盒装近来的(亚太港行除外),保证全新。 水货包装差、对不上号是为什么?上面说过了,大部分水货上是光机头进来的,配件都是国产的(行货基本国产),有的商家会配上行货的包装、说明书、充电器、数据线光盘等等如三星和摩托罗拉大部分。 这些机器可能配件都是原装的,没什么好说的。 至于港行,理论上都应该是全套原包装的。 但是大部分其他水货,配件不可能是原装,比如盒子说明书,哪个商家会傻到冒大风险把这些不值钱的东西偷运回来啊(当然偶尔也有的)?都是只带机头顶多加电池。 所以配上翻印的盒子、说明书,甚至组装充电器,数据线也都是非常正常的,尤其一些没在大陆上市的机器。 至于手机编号和盒子对不上号哪更正常了,盒子是国内的,手机是国外的,怎么对号啊?不过大部分水货手机的电池应该都带原装的,除非是部分机型确实原电很少,找不到。 有些商家就靠电池换成组电赚取利润,一般原电都要三四十以上,尤其三星、sony的电池贵。 组电也就几十块钱,所以买之前一定要问好。 水货质量比行货差吗?水货质量比行货好吗?这两种说法都是错误的,就手机本身来说,不管行货水货,不过多少钱的,没有完美的机器,都必然会有些问题,谈水货质量一定差没道理。 其实相当大部分港行,亚太机器尤其Samsung,Moto,根本就是国内产的,和行货是一模一样的机器,只是包装不同或者上面铭文不同,所以谈不上质量差或者好,只能看个体差异。 说水货质量差相当一部分指的是软件问题,硬件是绝对没问题的。 有些手机没法刷行货的软件(以前的水货机内存小,但汉字又占两个字节),只好自己改,一些高人就改写软件什么的,从以前的不成熟到现在的成熟,总体说大部分改写的软件没有什么问题,少部分存在软件不稳定,容易出现花屏、死机、屏幕显示错误等现象。 说水货质量好,无非是说水货是国外产的,比国内的做工好,这个也站不住脚,确实有些机器水的如Nokia芬兰原厂的机器质量是不错,但并不绝对,没理由讲国内生产技术就一定比国外差,哪干脆Intel,Samsung什么都不要在国内开厂算了,大家不用妄自菲薄。 很多标着国外产的电子产品压根就是国内组装生产的,出去转一圈变成进口的再来骗钱(如森海塞尔)。 当然这个是市场和生产需要很正常。
网络工程师的前景怎样?
网络工程师前景 社会生活高度信息化,使得网络已经成为人们生活不可或缺的一部分。 电子商务、电子政务、网上淘金和网络游戏已充斥着人们的生活、工作、学习中的每一个环节。 而这一切,都需要大量的网络人才来支撑,网络工程师已成为现在最热门的职业之一。 职业描述网络工程师,就是对企业(政府)网络信息系统进行设计、运行、管理和维护等工作的专业工程技术人员。 职业技能要求 网络工程师职业的基本要求,是能根据应用部门的要求进行网络系统的规划、设计和网络设备的软硬件安装调试工作,能进行网络系统的运行、维护和管理。 作为网络专业人员,真正的网络工程师应具备ADIT,即Analysis(分析问题的能力)、Design(规划设计解决问题方案的能力)、Implementing(实现规划方案的能力)、Troubleshooting(监测整个方案的执行并及时对故障进行排查的能力)。 首先,要熟悉掌握最常用的网络操作系统,如Windows 2000/XP/2003、Unix和Linux,如果平时很少接触Nix系统,就要多看相关案例并进行实际演练来弥补这方面的不足。 其次,要熟悉掌握综合布线和网络集成的有关知识。 在网络设计时,要充分考虑设备的选型和网络拓扑的设计,就必须对综合布线有所了解,才可能做到组网科学、合理、安全、性能价格比最高。 同时作为一个合格的网络工程师,熟悉一些常用数据库如Oracle,Sybase、SQL Sever等也是必需的,最好还能精通SQL语句。 就业领域 在国内,互联网已经非常普及,网络的管理和维护也是日常的重要工作之一,网络工程师是所有建立网站的单位必备的工作人员。 随着国内信息化产业的迅速推进、互联网蓬勃发展及网络技术的日新月异,市场对网络工程师、网络管理员等技术人员的需求日渐看涨。 网络工程师的就业机会相对比软件工程师多,可在数据库管理、web开发、it销售、互联网程序设计、数据库应用、网络开发和客户支持等领域发展。 例如联想、雅虎、263、天融信及神州数码等大、中规模国内外著名企业都需要网络工程师,其中不同模块对应不同的就业方向: Windows 模块:Windows 系统管理员,Windows 网络管理员、技术支持、桌面支持。 Linux 模块: Linux系统管理员,Linux网络管理员、技术支持、桌面支持。 网站编程模块:ASP程序员,PHP程序员,网站开发工程师、SQL Server数据库管理员,MySql数据库管理员。 网络安全模块:网络安全管理工程师、安全产品售前售后技术支持。 网络设备模块:网络设备工程师、计算机网络设计工程师。 现状与前景国内领先的招聘网站——中华英才网发布的最新就业指数调查显示,从全国行业职位整体分布来看,计算机、信息服务行业仍以近20%份额占据着招聘热点行业首席,职位需求主要集中在一些互联网公司,需求量最大、争夺最为激烈的是技术和研发人才,包括当下抢手的网络搜索引擎研发人员。 市场调查公司的研究表明,中国有上网用户1.03亿,在“用户经常使用的网络服务”中,“搜索引擎”以64.5%排在第三位,仅次于电子邮箱和浏览新闻。 除IT企业的巨大需求外,信息化浪潮下传统企业对网络人才的需求正呈爆炸式增长。 就职业需要来看:一是政府机关政府上网工程的实施造就了人才和培训的巨大需求我们目前正在实施政府上网工程,现如今政府网站数量据不完全统计,全国已有2000余个地(局)级以上政府机关上网建立网站并逐步形成网上办公。 县(处)级以下政府机关上网单位数量将更加庞大。 粗略统计,实现上网的政府机关不足政府机关总数的5%,已经实现政府机关上网的数量超过1万个。 全国政府网站待建设的需求将不少于15万个。 保守估计每个政府网站的人按照2人计算,从业人员约2万人。 未来从业总需求将不少于30万人。
发表评论