数据库管理员

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

5
备份->恢复操作后混乱的用户权限
我不得不将几个SQL Server 2008数据库移动到我们的新数据库服务器,因此我将它们全部备份(到.bak文件),将这些文件复制到新框中并还原它们(所有操作都使用SQL Management Studio完成)。 一切正常,但是现在我发现我无法使用继续在旧RDBMS上运行的SQL Server帐户登录任何数据库。我的Windows身份验证登录仍然可以正常工作。 我有这样的想法,用户和权限都可以无缝地复制到新的数据库服务器上,但是似乎某个地方出了问题。我将不胜感激/建议/建议;-)


1
在“创建数据库”命令中指定表空间时,为什么会收到PostgreSQL权限错误?
当我在PostgreSQL中创建数据库而未明确指定默认表空间时,创建该数据库没有问题(我以pgsys用户身份登录): postgres =>创建数据库rich1; 创建数据库 postgres => \ l + 数据库清单 姓名| 业主| 编码| 整理| Ctype | 访问权限| 尺寸 表空间| 描述 ----------- + ---------- + ---------- + ------------- +- ----------- + ------------------------------------- + ----------- + ------------ + ------------------------- ------------------- postgres | pgsys | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | | 7455 …

1
PostgreSQL:default_statistics_target值的真正含义是什么?
增加default_statistics_target值可以使您的数据库更快,特别是在分析之后。 阅读这篇文章后,我看到https://discuss.pivotal.io/hc/en-us/articles/201581033-default-statistics-target-Explained (...)简而言之,此参数控制着统计信息的收集方式,其中值1是估计/准确度最低的统计信息,值1000是最准确的统计信息,显然这会浪费时间/资源(CPU,内存等)/空间。通常,默认值足以获得准确的计划,但是如果您具有复杂的数据分布/或者查询中经常引用某列,则设置较高的值可能有助于获取更好的表统计信息,因此优化程序执行的更好计划。 这是一个很好的解释,但是例如,如果我将default_statistics_target = 1000设置为1000,这到底意味着什么?正在生成1000 KB的统计信息吗?还是分析了1000行表?也许是1000列?每次分析可能需要1000秒... 所以我的问题是,这个数字是如何真正影响分析或查询计划者的?很明显,我知道default_statistics_target = 1000会获得比100更长的运行分析时间,并且1000会生成更好的统计信息...
11 postgresql 

1
在子查询中使用外部别名
| payments | | transactions | | transaction_items | |:--------------:| |:------------:| |:-----------------:| | id | | id | | id | | date | | number | | transaction_id | | amount | | date | | description | | transaction_id | | val | | price | | discount …
11 mysql  mysql-5.5 

1
获取任何Postgres元命令的等效SQL查询
我希望标题是可自我描述的。我希望能够以某种方式将任何Postgres元命令转换为其相应/底层的SQL查询,至少要了解有关Postgres及其在表中存储元信息的方式的更多信息。 有什么想法可能吗? 例如: 当连接到数据库EXAMPLE时, \dt并SELECT table_schema,table_name FROM information_schema.tables ORDER BY table_schema,table_name;返回相同的结果。 如果可能,我想找到一种SELECT table_schema,table_name FROM information_schema.tables ORDER BY table_schema,table_name;在输入\dt函数/宏/任何内容时获取值的方法。
11 postgresql 

4
在全新的mysql 5.7安装中设置root密码
我正在尝试将mysql安装在服务中CentOS Linux release 7.2.1511。看一下流程安装: # sudo yum install mysql-server 输出: Dependencies Resolved =========================================================================================================================================================================================================== Package Arch Version Repository Size =========================================================================================================================================================================================================== Removing: mysql-community-client x86_64 5.7.10-1.el7 @mysql57-community 109 M mysql-community-server x86_64 5.7.10-1.el7 @mysql57-community 652 M Transaction Summary =========================================================================================================================================================================================================== 我运行了mysql damon: # sudo service mysqld start 检查服务: # ps -ef|grep mysql mysql 1371 1 …
11 mysql  linux  centos 

2
如何在MySQL中向用户授予数据库创建特权
以下命令为用户“ admin”提供所有数据库中的所有特权。但是它不允许'admin'创建数据库。 GRANT ALL ON * . * TO 'admin'@'localhost'; 如何为“管理员”提供访问权限以创建数据库? 当我尝试创建数据库时,出现以下错误- 错误1044(42000):用户'admin'@'localhost'对数据库'newdb'的访问被拒绝
11 mysql 

1
批量插入后,外键变得不受信任
在具有2012兼容模式下数据库的SQL 2014版服务器(12.0.2430.0-尚无SP1)中(正在努力将其切换到2014 ...),我有少数几个外键对象,这些外键对象not trusted在数据库中始终标记为。我删除并重新创建了没有NOCHECK选项的它们,但是在5到10分钟内,它们再次变得不受信任,如果我生成CREATE脚本,它将显示为: ALTER TABLE [dbo].[Points] WITH NOCHECK ADD CONSTRAINT [FK_BadgeId] FOREIGN KEY([BadgeId]) REFERENCES [dbo].[Badge] ([Id]) GO 使用的创建脚本为: ALTER TABLE [dbo].[Points] ADD CONSTRAINT [FK_BadgeId] FOREIGN KEY([BadgeId]) REFERENCES [dbo].[Badge] ([Id]) GO ALTER TABLE [dbo].[Points] CHECK CONSTRAINT [FK_BadgeId] GO 没有复制,没有第三方工具,而且我正在监视数据库中的所有DDL语句,因此它不是另一个用户。 我能够很好地检查约束(WITH CHECK CHECK在每个约束上使用),但是不久之后它们仍然变得不受信任。只有运行的维护工作是Ola在AM的早期工作,并且整天都在进行。 更新: 因此,在经过几次跟踪以缩小可能性后,似乎BULK INSERT可能导致FK变得不可信。这个msdn问题指出,这是密钥变得不受信任的有效途径,这是我第一次听说。 所以我现在的问题是,有没有一种替代方法BULK INSERT可以保持外键is_trusted状态?它是在每小时运行几次的应用程序的上下文中执行的。我可以让开发人员批处理其插入语句,但是BULK INSERT如果不需要的话,我不希望在使用时使用最后通atum 。

2
查询“创建排序索引”上的MySQL配置文件,使用总时间的75%
我们正在尝试弄清楚如何优化查询(大约100毫秒),并运行我们看到的Creating Sort Index使用75%总时间的配置文件。首先,创建排序索引的确切效果是什么?是磁盘/ IO吗? 其次,我们可以对查询本身进行任何优化吗? SELECT r.`id`, r.name, r.public_uri, rv.version, rv.interpreter, rv.notes, rv.content, r.added, r.added_by, r.modified, r.modified_by, r.public, r.public_by FROM recipe_heads rh, recipes r, recipe_versions rv WHERE rh.recipe = r.`id` AND rh.recipe_version = rv.`id` AND r.`id` = rv.recipe ORDER BY r.added DESC 说明:
11 mysql  profiler 

1
PostgreSQL:设置默认的psql客户端编码
当我使用连接到Postgresql数据库时psql,通常会收到以下消息: => SELECT * FROM question_view ; ERROR: character with byte sequence 0xd7 0x9e in encoding "UTF8" has no equivalent in encoding "LATIN1" 按照这个答案,我知道我应该相应地更改客户端编码: SET client_encoding = 'UTF8'; client_encoding每次连接数据库时都要进行更改。有没有办法在.pgpass文件中或其他任何地方永久配置此设置?

1
从远程服务器复制PostgreSQL数据库
当我使用MySQL时,我可以运行一个通过SSH进入服务器的命令,并将数据库复制到本地计算机上。 ssh -t remoteserver'mysqldump --compress -u dbuser --password =“密码” db_name'| / usr / local / mysql / bin / mysql -u root --password =“密码” local_db_name 如何使用PostgreSQL做同样的事情?
11 postgresql 


2
是否建议使用身份代替主键?
我们可以声明一个Identitylike,id_num这样id_num它将具有唯一编号的增量。 CREATE TABLE new_employees ( id_num int IDENTITY(1,1), fname varchar (20), minit char(1), lname varchar(30) ) 由于为每行提供了唯一的编号,因此建议使用它Identity作为替代方法吗?Primary keyIdentity


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.