数据库管理员

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

3
无法删除“ GRANT USAGE”
我正在测试一些东西,并添加了: grant usage on statistics.* to cptnotsoawesome@localhost identified by 'password'; 所以现在当我做 show grants for cptnotsoawesome@localhost; 我可以看到其中之一是: Grants for cptnotsoawesome@localhost ---------------------------------- GRANT USAGE ON *.* TO 'cptnotsoawesome'@'localhost' IDENTIFIED BY PASSWORD 'somePEW-PEWstring' 现在,我想删除它,因为我认为这是安全隐患,因此我执行以下操作: REVOKE USAGE ON *.* FROM 'cptnotsoawesome'@'localhost' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; 但它仍显示USAGE授予在授予列表中。 Grants for cptnotsoawesome@localhost ---------------------------------- GRANT USAGE ON …

6
存储过程的突然执行计划
我试图了解SQL Server 2000所遇到的问题。我们是一个中等交易量的网站,我们有一个存储的proc调用sp_GetCurrentTransactions,它接受一个customerID和两个日期。 现在,根据日期和客户,此查询可以返回从零到1000s的行。 问题是:我们经历过的是,突然之间Execution Timeout Expired,当特定客户端尝试执行该存储的proc时,我们将获得许多错误(通常是类似错误)。因此,我们检查了查询,在SSMS中运行该查询,发现它花费了30秒。因此,我们重新编译存储的proc,然后-bang-它现在可以在300ms内运行。 我已经与我们的DBA谈过此事。他告诉我,当我们创建存储的proc时,数据库创建了一个查询计划。他说这对那组参数来说是一个很好的计划,但是如果您向它扔一些参数,那么该计划将不是该数据的最佳计划,因此您会发现它运行缓慢。 呈现给我的选项是将问题查询从存储的proc转移回动态SQL,该SQL具有每次运行时创建的执行计划。 这感觉就像是退后了一步,我觉得必须有一种解决方法。还有其他方法可以解决此问题吗? 任何和所有答复表示赞赏。



1
pg_restore期间检查点的发生过于频繁
在PostgreSQL 9.2.2(Windows 32位)下,我有一个pg_restore命令,该命令系统地导致有关检查点频率的日志警告,例如: LOG: checkpoints are occurring too frequently (17 seconds apart) HINT: Consider increasing the configuration parameter "checkpoint_segments". 该数据库大小约为3.3 Gb,具有112个表/ 160个视图,并在大约14分钟内恢复。 这在正常情况下发生是正常的pg_restore吗?

3
Mongo Shell中过去24小时的日期范围查询
我正在设置cron作业以从MongoDB数据库分析器收集结果。我想在24小时内收集结果。我计划使用javascript运行mongo命令。 问题是,在Mongo shell中,如何编写查询以查找24小时之前的日期范围?如: db.system.profile.find({ "timestamp" : { $lte : <current date & time>, $gt : <date & time 24 hrs ago> } })
15 mongodb  cron 


2
如何备份大型MongoDB数据库
在MongoDB中备份大数据集的推荐方法是什么?假设我们的数据大小约为10TB-您将如何备份呢? 我们正在考虑一个隐藏的,可能延迟的副本集节点。延迟可以保护我们免受整个数据库意外丢失的影响。这是一个可行的解决方案,您建议调查其他哪些选择? 谢谢!

2
Postgres中的快速汉明距离查询
我有一个大型数据库(1600万行),其中包含图像的感知哈希。 我希望能够在合理的时间内按汉明距离搜索行。 目前,据我所知,我认为最好的选择是自定义SP-GiST实现,该实现可实现BK-Tree,但这似乎需要大量工作,但我仍然对实用性感到困惑正确实现自定义索引的详细信息。计算汉明距离很容易,但是我确实知道C。 基本上,这里合适的方法是什么?我需要能够在哈希的特定编辑距离内查询匹配项。据我了解,长度相等的字符串的Levenshtein距离在功能上是汉明距离,因此,尽管没有明确的方法可以从中创建索引(请记住,我正在查询的值),至少存在一些对我想要的支持。我无法预先计算与固定值的距离,因为那只会对那个值有用。 哈希当前存储为64个字符的字符串,其中包含哈希的二进制ASCII编码(例如“ 10010101 ...”),但是我可以很容易地将它们转换为int64。真正的问题是我需要能够相对快速地进行查询。 似乎可以通过达成与我想要的目标类似的东西pg_trgm,但是我不清楚三联词匹配机制的工作原理(特别是,它返回的相似性度量实际上代表了什么?看起来有点像编辑距离)。 插入性能并不关键(计算每行的哈希值在计算上非常昂贵),因此我主要关心搜索。

1
log_min_duration_statement设置被忽略
我Postgresql 9.1在Ubuntu上运行。确切的Postgresql版本9.1+129ubuntu1如我的软件包管理器所示。 我有2个正在积极使用的数据库,它们是从远程服务器使用的。 我希望记录执行时间较长的查询。所以我在/etc/postgresql/9.1/main/postgresql.conf文件中设置以下参数 log_min_duration_statement = 10000 log_statement = 'mod' 因此Postgresql将记录超过10秒的查询。 但是当我reload使用postgres配置时,Postgresql开始记录每个适合log_statement值的查询。我将持续时间设置为100秒以确保 log_min_duration_statement = 100000 但是Postgresql会记录所有适合log_statement值的查询,无论log_min_duration_statement值如何。 设置log_statement为none似乎停止记录。 我有什么想念的配置吗?

3
选择最晚日期或最晚日期
这是两个表。 学校员工 SCHOOL_CODE + STAFF_TYPE_NAME + LAST_UPDATE_DATE_TIME + PERSON_ID ================================================================= ABE Principal 24-JAN-13 111222 ABE Principal 09-FEB-12 222111 人事 PERSON_ID + NAME ================= 111222 ABC 222111 XYZ 这是我的oracle查询。 SELECT MAX(LAST_UPDATE_DATE_TIME) AS LAST_UPDATE, SCHOOL_CODE, PERSON_ID FROM SCHOOL_STAFF WHERE STAFF_TYPE_NAME='Principal' GROUP BY SCHOOL_CODE, PERSON_ID ORDER BY SCHOOL_CODE; 这给出了这个结果 LAST_UPDATE SCHOOL_CODE PERSON_ID ===========+===========+========= …

4
即使零行匹配,也让SELECT返回恒定值
考虑以下选择语句: SELECT *, 1 AS query_id FROM players WHERE username='foobar'; 它返回query_id带有值的列1以及玩家的其他列。 如何将一个至少让上面的SQL回报query_id的1,即使选择,反而找不到行那场比赛? 顺便说一句,它是PostgreSQL 8.4。

5
主文件组已满SQL Server 2008
我有一个大表(约5000万行),我正在尝试将其批量插入SQL Server,但出现错误: 无法为数据库“ I 3 Stroke”中的对象“ myDB”分配空间,因为“ PRIMARY”文件组已满。通过删除不需要的文件,在文件组中删除对象,向文件组添加其他文件或为文件组中的现有文件设置自动增长来创建磁盘空间。 数据库中还有另一个表,其中包含约2500万行。该数据库将仅在单台计算机上使用,并且将被设计用于挖掘已经存在的数据,并且在任何情况下都不会超过其当前大小。 对于这种情况,SQL Server不会抱怨的最佳解决方法是什么?解决方案是否关系到该数据库不会暴露给多个用户是否重要?

3
如何获取同一表上不同列的计数
表#01 Status: StatusID Status ----------------------- 1 Opened 2 Closed 3 ReOpened 4 Pending 表#02 Claims: ClaimID CompanyName StatusID -------------------------------------- 1 ABC 1 2 ABC 1 3 ABC 2 4 ABC 4 5 XYZ 1 6 XYZ 1 预期结果: CompanyName TotalOpenClaims TotalClosedClaims TotalReOpenedClaims TotalPendingClaims -------------------------------------------------------------------------------- ABC 2 1 0 1 XYZ …
15 sql-server  pivot 

2
ALTER TABLE上的数据库“冻结”
今天早上,我们的生产环境只是冻结*一段时间,当更改表格时,实际上添加了一列。 令人反感的SQL:ALTER TABLE cliente ADD COLUMN topicos character varying(20)[]; *登录到我们的系统需要从同一张表中进行选择,因此在更改表期间没有人可以登录。实际上,我们必须终止进程以使系统恢复正常运行。 表结构: CREATE TABLE cliente ( rut character varying(30) NOT NULL, nombre character varying(150) NOT NULL, razon_social character varying(150) NOT NULL, direccion character varying(200) NOT NULL, comuna character varying(100) NOT NULL, ciudad character varying(100) NOT NULL, codigo_pais character varying(3) NOT NULL, …

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.