首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

进阶数据库系列(二十五):PostgreSQL 数据库日常运维管理

用户创建sp_exec函数 create or replace function pgadmin.sp_exec(vsql varchar) returns void --返回空 language...用户创建sp_exec函数 create or replace function copyload.sp_exec(vsql varchar) returns void --返回空 language...不重复数量,NULL不被计数; count(distinct (col1,col2,…) ) 计算多列的唯一值时,NULL会被计数,同时NULLNULL会被认为是想同的; NULL是UNKNOWN的意思...因此NULL与任意值的逻辑判断都返回NULL; 除非是ETL程序,否则应该尽量避免向客户端返回大数据量,若数据量过大,应该考虑相应需求是否合理; 尽量不要使用 select * from t ,用具体的字段列表代替...禁止使用触发器产生序列值; 使用窗口查询减少数据库和应用的交互次数; 如何判断两个值是不是不一样(并且将NULL视为一样的值),使用col1 IS DISTINCT FROM col2; 对于经常变更,

61020

自动添加标签(1):初次实现

---- 提示 在可能的情况下,最好逐渐修改最初的程序,不要推倒重来。清晰 起见,我将提供两个完全独立的程序版本。...4.1.找出文本块 要找出这些文本块,一种简单的方法是,收集空行前的所有行并将它们返回,然后重复这样的操作。不需要收集空行,因此不需要返回空文本块(即多个空行)。...另外,必须保证文件的最后一行空行,否则无法确定最后一个文本块到哪里结束。(当然,有其他确定这一点的方法) 下图演示了这种方法的一种实现。 ?...这里假设要将第一个文本块放在一级标题标签(h1)内,不是段落标签内。另外,还需将用星号括起的文本改成突出文本(使用标签em)。这样程序将更有用一些。...更重要的是,要让程序输出其他格式的代码(不是HTML)很难,但这个项目的目标之一就是能够轻松地添加其他输出格式。这里假设你要重构这个程序,以采用稍微不同的结构。

1.4K40

googl中java、c++编程风格

2.3.2 特殊转义序列 对于具有特殊转义序列的任何字符(\b, \t, \n, \f, \r, \“, \‘及\),我们使用它的转义序列,不是相 应的八进制(比如\012)或Unicode(比如\u000a...5.2.4 常量名 常量名命名模式CONSTANT_CASE,全部字母大写,用下划线分隔单词。那,到底什么算是一个常量? 每个常量都是一个静态final字段,但不是所有静态final字段都是常量。...每一个 C++程序员也都知道,C++具有徆多强大的诧言特性,但 种强大丌可避免的导致它的复杂,复杂性会使得代码更容易出现 bug、难亍阅诺和维护。   ...C++是一门包吨大量高级特性的巨型诧言,某些情冴下,我们会 限制甚至禁止使用某些特性使代码简化,避免可能导致的各种问题,挃南中列丼了类特性,幵解释说 什么些特性是被限制使用的。 ...确保它们是纯接口, 些类必须以 Interface 后缀。

1K20

JavaWeb - Servlet:基本概念,HTTP 协议,Tomcat 服务器

HTTP 协议通常承载于 TCP 协议之上,承载于 TLS 或 SSL 协议层之上的协议就是常说的 HTTPS 协议。 HTTP 默认的端口号为 80,HTTPS 默认的端口号为 443。...,即便后面的请求数据空也必须有空行 请求体也叫请求数据,可以添加任意的其他数据 POST /task01_demo01/demo1.html HTTP/1.1 Host: localhost:8088...,即便后面的请求数据空也必须有空行 响应体用来服务器返回给客户端的文本信息 HTTP/1.1 200 OK Content-Type: text/html Content-Length: 588...String getServletName() 返回 Servlet 的别名 String getInitParameter(String name) 返回包含初始化参数值的字符串,如果该参数不存在,则返回 null...param-value> 常用的方法 String getInitParameter(String name) 返回包含初始化参数值的字符串,如果该参数不存在,则返回 null

82920

DAX中的基础表函数

度量值和计算列都要求结果标量值。但是,我们可以将表表达式的结果分配给新建表(Calculated Table)。新建表是一个计算表,其值由DAX表达式决定,不是从数据源加载。...DAX中的某些函数将空行作为其结果的一部分,而其他函数则不会这样做。也就是说,VALUES函数将空行视为有效行,并将其显示出来,DISTINCT函数不返回空行。...图10  NumOfDistinctColors空行显示空值,其总数显示15,不是16 一个设计良好的模型中不应该存在无效的关系。因此,如果你的模型是完美的,那么这两个函数总是返回相同的值。...因此,分母的COUNTROWS返回空,结果也空。在第二个变体中,我们仍然使用VALUES函数,但是这次计算的是Sales[ProductKey]的数量。...如果出于某种原因存在无效的关系,那么你需要非常谨慎地处理空行,以及它的存在可能会对计算产生的影响。 最后要提醒的是,ALL函数总是会返回空行

2.5K10

SQLAlchemy in 查询空列表问题分析

按照这个思路,有两种查询方案: 如果 account_ids 空,那么直接返回空列表不进行任何操作,查询语句变为: if account_ids: query = Account.query.filter...,此时生成的 SQL 语句结果: SELECT * FROM account WHERE 0 = 1 ORDER BY account.date_created DESC 分析结果postgres...这里的输出行数(rows)并不是规划节点处理/扫描的行数,通常会更少一些。一般而言,顶层的行预计数量会更接近于查询实际返回的行数。...这里表示的就是在只有单 CPU 内核的情况下,评估成本是127716.33; 计算成本,Postgresql 首先看表的字节数大小 这里 account 表的大小postgres=> select...postgres=> show cpu_operator_cost; cpu_operator_cost ------------------- 0.0025 (1 row) postgres=>

1.6K20

java代码规范

使用 entrySet 遍历 Map 类集合 KV ,不是 keySet 方式进行遍历。 entrySet 只是遍历了一次就把 key 和 value 都放到了 entry 中,效率更高。...不允许 null |允许 null |AbstractMap| 线程不安全 HashMap |允许 null| 允许 null |AbstractMap | 线程不安全 ConcurrentHashMap...控制语句 表达异常的分支时,少用 if-else 方式 ,这种方式可以改写成 if (condition) { ... return obj; } 方法的返回值可以为 null ,不强制返回空集合,或者空对象等...count( * ) 会统计值 NULL 的行, count( 列名 ) 不会统计此列为 NULL 值的行。...方法的返回值可以为null,不强制返回空集合和空对象,必须添加注释说明什么情况下返回空 其他 在使用正则表达式时要学会利用预编译,加快正则匹配速度,定义正则的时候不要在方法体内进行定义。

1.2K20

干货|分析PostgreSql单表60w数据却占用55g空间

这让我顿时想到[Mysql的MVCC],但是mysql的undo log也只记录执行操作的相反记录保留最新的记录,redo log记录数据页的变更,但是大小是固定的,都可以通过配置参数配置固定大小。...# 单表超过55g实际数据却只有60w条  回到postgresql数据库上,一开始提到的死亡元组问题提到了[VACUUM命令](http://postgres.cn/docs/10/sql-vacuum.html...) 简单了解之下只是看到一些博客说pg会保留更新删除数据行的MVCC版本记录数据,完了又看到官网的解释:   `简单的 VACUUM(不带FULL)简单地收回空间并使其可以被重用。...,不会立刻删除,当更新或者删除特别频繁的时候,空间占用就会特别的明显了,vacuum命令类似于标记一些过时的数据垃圾数据(这有点像操作系统,当你的把数据删除了,其实他只是标记删除,完了继续堆积在新的未存放数据的空间...,这就是说为什么理论上,不存在彻底的删除,除非你把磁盘填满之后重新覆盖),可以被之后的新记录覆盖,对于急着释放空间页面请求又不是特别多的情况下还是需要vacuum full来紧急释放空间,另外官网也不建议频繁的

47150

一文读懂《Effective Java》第43条:返回零长度的数组或集合,不是null

对于一个返回null 不是零长度数组或者集合的方法,客户端几乎每次用到该方法都可能会忘记写专门处理null 返回值的代码,进而导致NPE。...返回值null 与性能 有时候会有程序员认为:null 返回值比零长度数组更好,因为它避免了分配数组所需要的开销,但这种观点站不住脚。...在返回值这种级别上担心性能问题是不明智的,除非分析表明这个方法是造成性能问题的真正源头 对于不返回任何元素的调用,每次返回同一个零长度数组是有可能的,因为零长度数组不可变的,不可变对象可能被自由的共享...,没理由返回null,二是返回一个零长度的数组或者集合。...Java 的返回值null 的做法,很可能是从C 语言沿袭过来的,在C 中,数组长度是与实际的数组分开返回的,如果返回的数组长度0,再分配一个数组就没有任何好处了。

1.6K20
领券