数据库管理员

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

2
非聚集索引-键和非键
我只想确保我在这些概念上走的正确,所以任何反馈将不胜感激。 这是我根据刚刚经过优化的查询通过反复试验并阅读MSDN文档而得出的理论。 查询 DECLARE @pic_id int SET pic_id = 1 SELECT ROW_NUMBER() OVER (ORDER BY pic_date desc) AS row_num, * FROM tbl_pics WHERE deleted = 0 AND map_id = 1 AND (hidden = 0 OR pic_id = @pic_id) 索引 CREATE NONCLUSTERED INDEX [IX_tbl_pics] ON [dbo].[tbl_pics] ( [map_id] ASC, [deleted] ASC, …

1
SQL Server作业历史记录在5天后消失
我觉得这是一个愚蠢的问题,但是对于我自己的一生,我无法追踪正在发生的事情。我刚刚接管了几台服务器的管理,在所有这些服务器上,作业历史记录仅保留了5天。有一个清理维护计划,但计划保留5周。 EXEC msdb.dbo.sp_syspolicy_purge_history每天运行一次,但是,“历史记录保留天数”设置为0,因此我的理解是它什么也不做。 我在这里一定缺少一些非常简单的东西。谁能指出我正确的方向?


1
sql server中的持续时间测量实际测量什么?
进行探查器跟踪时,查询持续时间究竟能测量什么? 我有一个执行数据访问(SELECT)的存储过程,平均大约需要30秒才能将结果返回给应用程序。但是当我对其进行跟踪时,我得到的平均持续时间约为8秒,最大持续时间为12秒,平均CPU时间为5.5秒。 是什么导致返回结果集花费更长的时间呢?我没有累积大量的NETWORKIO等待。结果集仅包含约270行的简单文本数据,总计约50列。

3
适当的多语言模式,还是矫kill过正?
更新2:我实际上已经使用了它,经过几次调整后,它很棒。这是我关于其实际设计并在实践中的文章:http : //tim.hithlonde.com/2013/lemon-schema-works/ 我正在构建一个Web应用程序,并且希望它支持多种语言。此结构包含两个组件: 用词条连接语言环境(“英语”,“荷兰语”等),并用Rosetta Stone连接词条和特定语言的词条。 按页面对术语进行分组。我不想通过页面上可能需要的30多个术语来选择SELECT term1,term2等。我想问一下他们所连接的页面。 这是我建议的表结构(请注意,所有ID之间都具有关系/索引以进行非常有效的查询): * locale * id * value //English, Deutch, etc// * terms * id * value //In English// * page * id * value //Think add entry, menu// * page_group //group all terms to a page, for easy pulling// * id * …

2
SQL Server 2008 FileStream的最大行数
我们使用文件流中的Microsoft SQL Server 2008(SP2) - 10.0.4000.0(X64)和Windows Server 2008存储数百万文件。由于有数百万个文件,所有文件都被分组为100个文件组,并依次一个接一个地插入另一个文件组。现在,每个文件组中大约有1.5万个文件,预计很快会增长到2万个文件。所以我们想知道一个文件组必须具有最大行数限制才能达到最佳性能,或者在操作系统侧是否存在最大行数限制以达到最佳性能,因为我们要在单个文件夹中存储或存储约20K个文件? 对正确资源的任何建议也将非常有帮助。 我有一个指向msdn博客的链接,其中指出 4.检查FILESTREAM目录容器是否单独包含不超过300,000个文件,因为NTFS性能下降可能是一个问题,尤其是在启用8.3文件名生成时。 Msdn博客链接 谢谢。


1
InnoDB-在ibdata1文件和ib_logfile0上的高磁盘写I / O
服务器规格:具有以下信息的VPS model name : Intel(R) Xeon(R) CPU E5649 @ 2.53GHz MemTotal: 2058776 kB MemFree: 244436 kB 我们正在运行Invision Power Services的IP.Board,正在使用 innodb_file_per_table并已重新加载数据库以减小ibdata1的大小。但是,尽管ibdata1尺寸减小了,但最近我们仍然遇到CPU和I / O使用率高的问题。 根据我的检查,我认为这是由上较高的I / O使用率引起的ibdata1。以下是我使用pt-ioprofile -cell sizes(在Percona ToolKit中)获得的数据。基本上,这是30秒内收集的I / O总量。 # pt-ioprofile -cell sizes Fri Jul 20 10:22:23 ICT 2012 Tracing process ID 8581 total pread read pwrite fsync open …
8 mysql  innodb 

3
如何串联psql变量?
如何连接两个psql(PostgreSQL客户端)变量?我想通过串联目录路径变量和文件名变量来生成绝对路径。 我已经试过了: \set path '/tmp/' \set file 'foo' \echo :path:file 但是psql在路径和文件之间放置一个空格,并输出: /tmp/ foo

3
过滤按行版本排序的数据
我有一个具有以下结构的SQL数据表: CREATE TABLE Data( Id uniqueidentifier NOT NULL, Date datetime NOT NULL, Value decimal(20, 10) NULL, RV timestamp NOT NULL, CONSTRAINT PK_Data PRIMARY KEY CLUSTERED (Id, Date) ) 不同的Id的数量在3000到50000之间。 表的大小变化到十亿行以上。 一个ID最多可以覆盖表格的5%至几行。 此表上最常执行的查询是: SELECT Id, Date, Value, RV FROM Data WHERE Id = @Id AND Date Between @StartDate AND @StopDate 我现在必须在ID的一个子集上实现增量数据检索,包括更新。 …



2
用mysqldump和USE ..缓慢的MySQL数据库导入
我在MySQL innoDB中大约有12个表,其中一个表中有1100万条记录。 我使用此命令来备份内容: mysqldump -u [USERNAME] -p [DBNAME] | gzip > [/path_to_file/DBNAME].sql.gz 然后使用以下命令在新服务器上导入内容: USE [DBNAME]; SOURCE [/path_to_file/DBNAME].sql; 这是我的痛苦(每个查询的时间都在增加!): 我该怎么做才能加快速度?我的mysqldump命令出问题了吗?

1
MySQL用户对存储过程的权限
我创建了一个简单的存储过程: mysql> CREATE FUNCTION hello (s CHAR(20)) -> RETURNS CHAR(50) DETERMINISTIC -> RETURN CONCAT('Hello, ',s,'!'); Query OK, 0 rows affected, 1 warning (0.00 sec) 但是无法运行它: mysql> SELECT hello('world'); ERROR 1370 (42000): execute command denied to user ''@'localhost' for routine 'test.hello' 我的用户名是否可能为空字符串?如何创建用户并授予特权?我可以授予用户数据库中所有实体的所有特权吗?

2
学习优化SQL查询和理解执行计划-资源?
我发现自己在工作中编写越来越多的SQL查询(大多数是Oracle 11g,但有些是SQL Server 2005-2008),并且已经开始为分析师团队的其他成员创建一些非常复杂的视图。 它们大多数都运行得很好,但是其中一些并不那么好。所以... 我如何学习调整查询? 我需要学习阅读或执行执行计划吗? 和... 您可以推荐哪些书/网站以了解有关SQL查询调优1)概述2)专门针对Oracle 11g的内容? 我们这里有一些不错的DBA,但是它们被淹没了,无法帮助我们调整我们编写的每个查询。 我在Amazon for Oracle上找到的大多数书籍似乎都是针对整体数据库优化的,并且/或者是在8到10年前写的。 谢谢您的建议:)

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.