数据库管理员

希望提高数据库技能并向社区中的其他人学习的数据库专业人员的问答

2
活页和非活页有什么区别?
我一直在运行一些索引使用情况报告,并且正在尝试获取Leaf和Non-leaf的定义。似乎同时存在叶子和非叶子插入,更新,删除,页面合并和页面分配。我真的不知道这意味着什么,或者一个比另一个更好。 如果有人可以给每个简单的定义,并解释为什么叶子或非叶子很重要,不胜感激!

2
我应该使用PostgreSQL位串吗?
我最近一直在学习bit string数据类型,对此我很好奇: 在此文档页面的底部有一句话: ...加上5或8个字节的开销,具体取决于字符串的长度 如何通过Npgsql,ODBC等驱动程序以其他语言(例如PHP,Java,C#,C ++等)处理位字符串。 对于问题1,使用smallint或bigint会提高存储效率,并且可能会提高性能,因为到处都支持整数。大多数编程语言都可以轻松地对整数进行位运算。如果是这样,引入位串数据类型有什么意义?是否仅适用于需要大量位掩码的情况?位字段索引可能吗?我对PostgreSQL中如何完成位字段索引感到好奇。 对于#2,我感到困惑,不仅仅是好奇。例如,如果我将星期几位掩码存储在bit(7)字段中,一天一次,最低位代表星期一,该怎么办。然后,我查询PHP和C ++中的值。我会得到什么?文档说我会有一个位字符串,但是位字符串不是我可以直接使用的-与整数一样。那么在这种情况下,我应该放弃位字段吗? 任何人都可以详细说明为什么以及何时应该使用逐点变化吗?
18 postgresql 

4
如何在一次选择中获得当前和下一个更大的值?
我有一个带有列的InnoDB表'idtimes'(MySQL 5.0.22-log) `id` int(11) NOT NULL, `time` int(20) NOT NULL, [...] 用复合唯一键 UNIQUE KEY `id_time` (`id`,`time`) 因此每个ID可以有多个时间戳,每个时间戳可以有多个ID。 我正在尝试建立一个查询,以获取所有条目以及每个条目的下一个较大时间(如果存在),因此它应返回例如: +-----+------------+------------+ | id | time | nexttime | +-----+------------+------------+ | 155 | 1300000000 | 1311111111 | | 155 | 1311111111 | 1322222222 | | 155 | 1322222222 | NULL | | 156 …
18 mysql  innodb  select 

1
集群列存储上的非集群索引存储
在SQL Server中,行存储表上的非唯一非聚集索引在非聚集索引结构的所有级别上都包含基础对象的书签(RID或群集键)。书签作为所有索引级别上非聚集索引键的一部分存储。 另一方面,如果非聚集索引是唯一的,则书签仅在索引的叶级别存在-不作为键的一部分(实际上,书签作为一个或多个包含的列存在)。 在SQL Server 2016中,可以在面向列的表(具有群集列存储索引的表)上构建非群集b树索引。 集群列存储表上非集群b树索引使用的“书签”是什么? 上述唯一索引和非唯一非聚集索引之间的区别是否仍然适用?

1
什么是好的SQL Server备份计划?
关于设置备份任务的过程似乎有很多信息,但是关于数据库备份的全局视图却没有太多信息。至少,很难制定出能够为您提供该信息的搜索引擎查询。我知道有三种不同类型的备份: 完整的数据库备份 差异数据库备份 事务日志备份 看来我应该全部使用这三个。那么,这是一个有意义的时间表吗? 每月的1号 -进行完整的数据库备份。 每天午夜 -进行差异数据库备份。 每15分钟 -进行事务日志备份。 这样,如果我的数据库在第12个数据库上发生故障,则只需从第1个数据库还原完整的数据库备份,从第1个数据库还原到第12个数据库的差异备份,然后最终还原最新的事务日志(交易记录差异?)。 最后,完整的数据库备份是否是自包含的?即在2月1日进行完整的数据库备份后,是否可以删除1月的所有文件?当然,我会保留前几个月的设置,以防万一,但是这个问题是概念性的。

3
如何仅在psql中关闭标头(PostgreSQL)
我正在使用PostgreSQL 9.1.X 我正在尝试构建psql脚本以打印不带页眉但包含页脚的结果。 http://www.postgresql.org/docs/9.1/static/app-psql.html 从上面的文件 \pset tuples_only 将同时关闭页眉和页脚。和 \pset footer off 将仅关闭页脚。 有没有办法psql关闭页眉并保持页脚打开? 我知道有很多方法可以使用shell / perl /任何您喜欢的文本工具来解决此问题,但是我想知道为什么页脚有一个配置,但页眉没有一个? id <--this line I don't want ---- <-- this line I don't want either 1 <-- this line, yes (1 row) <-- yes, I want it!
18 postgresql  psql 

2
如何将笑脸插入MySQL(😊)
我在MySQL 5.5.21上,尝试插入'\ xF0 \ x9F \ x98 \ x8A'笑脸字符。但是对于我的一生,我不知道该怎么做。 根据我一直在阅读的各种论坛,这是可能的。但是只要我尝试一下,数据就会被截断。 mysql> INSERT INTO hour ( `title`, `content`, `guid` , `published` , `lang` , `type` , `indegree` , `lon` , `lat` , `state` , `country` , `hour` ) VALUES ( "title" , "content 😊 content" , "guid" , 1, 1, "WEBLOG", …


2
pg_restore:[存档(db)]无法执行查询:错误:模式“ public”已经存在
我正在使用pg_dump / pg_restore备份和还原PostgreSQL数据库,但是从pg_restore收到一些错误消息(以及非零退出状态)。我尝试了一个超级简单的基本案例(下面概述),但仍然出现以下错误: pg_restore:[存档(db)]处理目录时出错: pg_restore:[archiver(db)]来自TOC条目5的错误;2615 2200 SCHEMA公共邮递区号 pg_restore:[存档(db)]无法执行查询:错误:模式“ public”已经存在 命令是:CREATE SCHEMA public; 重现步骤: 安装一个新的原始Ubuntu 14.04发行版(我正在将Vagrant与该Vagrant框一起使用)。 安装PostgreSQL 9.3,配置为允许来自任何Linux用户的PostgreSQL用户“ postgres”本地连接。 创建一个测试数据库。我只是在做: vagrant @ vagrant-ubuntu-trusty-64:〜$ psql --username = postgres postgres psql(9.3.5) 键入“帮助”以获得帮助。 postgres =#创建数据库mydb; 创建数据库 postgres =#\ q vagrant @ vagrant-ubuntu-trusty-64:〜$ psql --username = postgres mydb psql(9.3.5) 键入“帮助”以获得帮助。 mydb =#创建表数据(entry bigint); 创建表 mydb …

2
尝试导入的文件中的权限被拒绝
当我尝试使用\i不在psql.exe文件夹中的文件时,显示C:: permission denied。例如,我有一个带有SQL命令的文件,在C:\Users\Work\Desktop\School Work\load_database.sql键入\i "C:\Users\Work\Desktop\School Work\load_database.sql"时说C:: permission denied。我怎样才能解决这个问题? 我在这里找到了解决方法,将.sql文件复制到与psql.exe所在的文件夹中。 顺便说一句,\ i代表进口吗?

1
PostgreSQL JSON查询数组针对多个值
我想针对jsonbPostgres 中的类型编写查询,因为给定的客户ID数组将找到对应的组。 给定此示例表: CREATE TABLE grp(d JSONB NOT NULL); INSERT INTO grp VALUES ('{"name":"First","arr":["foo"], "customers":[{"id":"1", "name":"one"},{"id":"2", "name":"two"}]}') , ('{"name":"Second","arr":["foo","bar"], "customers":[{"id":"3", "name":"three"},{"id":"4", "name":"four"}]}') , ('{"name":"Third","arr":["bar","baz"], "customers":[{"id":"5", "name":"five"},{"id":"6", "name":"seven"}]}'); 我发现了类似的问题(针对多个值的PostgreSql JSONB SELECT),并使用此查询设法在简单数组上实现了我想要的功能: SELECT d FROM grp WHERE d->'arr' ?| ARRAY['foo', 'bar']; 但是,当数组包含JSON 对象时,我无法使其工作: SELECT d FROM grp WHERE d->'customers' ?| ARRAY['{"id":"1"}', '{"id":"5"}']; …

4
交易中的交易
如果例如以下脚本被调用,PostgreSQL将显示什么行为? BEGIN; SELECT * FROM foo; INSERT INTO foo(name) VALUES ('bar'); BEGIN; <- The point of interest END; PostgreSQL会放弃第二个BEGIN还是会隐式地决定提交,然后BEGIN END作为单独的事务最后运行该块?

2
为什么不使用IS NULL值的筛选索引?
假设我们有一个这样的表定义: CREATE TABLE MyTab ( ID INT IDENTITY(1,1) CONSTRAINT PK_MyTab_ID PRIMARY KEY ,GroupByColumn NVARCHAR(10) NOT NULL ,WhereColumn DATETIME NULL ) 和一个过滤的非聚集索引,如下所示: CREATE NONCLUSTERED INDEX IX_MyTab_GroupByColumn ON MyTab (GroupByColumn) WHERE (WhereColumn IS NULL) 为什么此索引未针对此查询“覆盖”: SELECT GroupByColumn ,COUNT(*) FROM MyTab WHERE WhereColumn IS NULL GROUP BY GroupByColumn 我正在得到这个执行计划: KeyLookup用于WhereColumn IS NULL谓词。 这是计划:https …

1
查看MySQL中的JSON数组是否包含其键包含特定日期的对象
我试图找出是否在JSON数组中包含特定日期的行 假设我的数据如下所示: 表格应用: id | application_id | data # Rows 1 | 1 | [{"data" : ["some", "data#1"], "date": "2016-04-21"}, {"data" : ["other", "data#1"], "date" : "2016-04-22"}] 2 | 2 | [{"data" : ["some", "data#2"], "date": "2016-04-21"}, {"data" : ["other", "data#2"], "date" : "2016-04-26"}] 3 | 1 | [{"data" : …
18 mysql  json 

2
将SSMS连接到Integration Services时“访问被拒绝”
尝试使用特定SQL Server群集的网络名称将SSMS连接到Integration Services时收到以下错误: 连接到计算机“ FooDB”上的Integration Services服务失败,出现以下错误:“访问被拒绝”。 如果尚未将计算机配置为允许通过DCOM进行远程连接,或者用户确实具有通过DCOM访问SQL Server Integration Services服务的权限,则会发生此错误。 这是有据可查的解决方案的常规问题。例如,在此处和此处查看解决方案。 但是,我尝试了所有已知的解决方案,但问题仍然存在。 更详细地说,我已经完成了以下工作: 验证连接的用户具有MsDtsServer100上上面链接到的文章中列出的DCOM权限: 启动和激活权限:允许本地启动,允许远程启动,本地激活,远程激活 访问权限:允许本地访问,允许远程访问 配置权限:允许读取 使用数据包嗅探器确认与连接有关的所有通信都已成功通过防火墙。在断开TCP连接之前显示的最后一个数据包是来自服务器的答复,其中包含Windows状态代码,表示MSRPC标头中的“拒绝访问”。 已测试将用户添加到“分布式COM用户”组和/或本地管理员组,然后重新启动服务器。这允许用户使用本地节点名称(FooDBN1,FooDBN2)从SSMS连接到SSIS,但是当他们连接到群集网络名称(FooDB)时,他们仍然会遇到“拒绝访问”错误。使用以及在其他集群上有效的方法。 另外,我还没有发现在其他集群上必须更改这些组的成员身份。 在检查过的其他群集上,我可以使用群集名称将SSMS连接到SSIS,而无需任何非默认配置。 我意识到这可能更适合ServerFault,并且可以根据需要迁移该问题,但是这也是SQL Server的问题,我认为此处的用户以前更可能会对其进行处理。 平台详细信息: Windows Server 2008 R2 SP1 SQL Server 2008 R2 SP2 具有单个SQL Server实例的2节点主动-被动群集 有人可以建议我接下来在这里看什么吗? 更新:这神秘地从今天开始工作,但仅适用于本地管理员组的成员。据我所知,没有任何改变。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.