数据库管理员

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


2
Management Studio中已注册服务器的选项卡颜色
SSMS允许我们为每个连接使用自定义颜色。 有人知道此信息保存在哪里吗?我想保留颜色设置,但我会继续丢失它。 编辑 从对象资源管理器连接时,可以设置颜色。但是,这似乎与我在注册服务器中设置的颜色不同,并且我一直在迷失。(实际上,我处于漫游状态。) 我仅在执行多服务器操作时才使用注册服务器面板,并在打开该面板时尝试更加小心,因此这就是为什么我还希望能够使用与对象资源管理器关联的颜色的原因。 谢谢

3
托管SQL Server的VM上的专用资源
我的理解是,使用VM的最大好处之一就是可以在主机上的虚拟机之间共享资源。因此,您可以有一台具有120个CPU的主机,并在其上放置5个VM,每个VM具有32个CPU。额外的CPU在VM之间“共享”,主机根据需要动态分配CPU。内存相同。 我也了解到,这对于装有SQL Server的VM来说是一个很大的禁忌,但我的VM管理员对此表示不同意见。是否有人以任何一种方式获得任何证据或文件? 我不知道这是否重要,但我们正在使用VMWare。

1
如何从以下查询中获取层次结构值?
我有一个名为的表Category,其中有一个名为的列CategoryID。同一张表中有一个引用列,称为fParentCategoryID。 我需要用逗号分隔所有类别ID及其子类别ID。例如-如果父类别ID为10,而父类别ID为20,则我打印类别ID 20时,我需要同时打印1和10作为其父,并以逗号分隔。 我尝试了以下查询,但我得到NULL了ParChild专栏。请帮忙。 ;WITH cteReports AS ( SELECT c.CategoryID, c.fParentCategoryID, [level] = 1, ParChild=cast(CAST(c.fParentCategoryID AS VARCHAR(200)) + ',' + CAST(c.CategoryID AS VARCHAR(200)) AS VARCHAR(MAX)) FROM retail.Category c WHERE c.fParentCategoryID is NULL UNION ALL SELECT c.CategoryID, c.fParentCategoryID, [level] + 1, ParChild = ParChild + ',' + CAST(c.CategoryID AS VARCHAR(200)) FROM …

2
列出SQL Server实例启动参数
我有一台刚刚重启的服务器,并使用以下命令验证了哪个跟踪标志处于活动状态DBCC TRACESTATUS: 跟踪标志:3688功能:删除错误日志中有关已启动和已停止跟踪的消息 在这里,您可以看到每个跟踪标志的作用。 旗3688 启动参数如下: 题: 如何通过T-SQL查找SQL Server服务的启动参数是什么?

1
提交和回滚只读事务是否存在性能差异?
我打开(可重复读取)事务(BEGIN TRAN),对某些记录进行一些处理。我要做的第一件事是检查我需要更改的数据是否在数据库中。在某些情况下,我会进行更改。但是在某些情况下,这无关紧要。在这种情况下,我要么COMMIT TRAN还是ROLLBACK TRAN和返回从存储过程。目前,尚未对数据进行任何更改,因此提交和回滚的效果是相同的。 我应该在提交和回滚之间选择任何考虑因素吗?有不同的性能成本吗?其他考虑因素?

3
在Windows 10上维护SQL Server 2008 R2
我必须在Windows 10上运行SQL Server 2008 R2,但不支持它,因此没有任何更新。不能安装更高版本的SQL Server。我可以在线找到所有Service Pack和累积更新。 问题: 有没有办法自动获取更新? 如果不是,则必须按顺序安装所有Service Pack,还是只能安装最新的Service Pack。

2
全文搜索速度慢,出现频率高
我有一个表,其中包含从文本文档中提取的数据。数据存储在名为"CONTENT"GIN 的列中,为此我创建了该索引: CREATE INDEX "File_contentIndex" ON "File" USING gin (setweight(to_tsvector('english'::regconfig , COALESCE("CONTENT", ''::character varying)::text), 'C'::"char")); 我使用以下查询在表上执行全文搜索: SELECT "ITEMID", ts_rank(setweight(to_tsvector('english', coalesce("CONTENT",'')), 'C') , plainto_tsquery('english', 'searchTerm')) AS "RANK" FROM "File" WHERE setweight(to_tsvector('english', coalesce("CONTENT",'')), 'C') @@ plainto_tsquery('english', 'searchTerm') ORDER BY "RANK" DESC LIMIT 5; “文件”表包含25万行,每个"CONTENT"条目均包含一个随机词和一个文本字符串,所有行均相同。 现在,当我搜索一个随机单词(整个表中有1个匹配项)时,查询运行非常快(<100毫秒)。但是,当我搜索所有行中都存在的单词时,查询运行非常慢(10分钟或更长时间)。 EXPLAIN ANALYZE显示对于1命中搜索,先执行位图索引扫描,再执行位图堆扫描。对于慢速搜索,将执行Seq扫描,这花费了很长时间。 当然,在所有行中都有相同的数据是不现实的。但是,由于我无法控制用户上载的文本文档,也无法控制用户执行的搜索,因此可能会出现类似的情况(搜索数据库中出现率很高的术语)。在这种情况下,如何提高搜索查询的性能? 运行PostgreSQL 9.3.4 查询计划EXPLAIN ANALYZE: …

1
如何在CLI pompt中显示Postgres版本?
我希望在命令行(控制台)界面提示中显示连接到的服务器的版本。根据我在文档中阅读的内容,可以执行shell命令,还可以显示psql变量值。 这个想法是获取有关连接的服务器的版本信息,并在客户端的提示中使用它。如何(在.psqlrc文件中?)在psql变量中分配服务器版本? 编辑:杰克·道格拉斯(Jack Douglas)通过指出该\gset功能可以得到正确的答案。最后以 show server_version \gset \set PROMPT1 '%:server_version: >' 谢谢。

5
如何更改MSSQL Management Studio主题?
不同于: 如何将主题应用于SQL Server Management Studio 2008? 我想要的是更改主题而不是编辑器的配色方案。 我希望它在2015年尽可能接近Dark。
8 ssms 

3
索引调整问题
我正在调整一些索引,看到一些问题想听取您的建议 在1个表上有3个索引 dbo.Address.IX_Address_ProfileId [1 KEY] ProfileId {int 4} Reads: 0 Writes:10,519 dbo.Address.IX_Address [2 KEYS] ProfileId {int 4}, InstanceId {int 4} Reads: 0 Writes:10,523 dbo.Address.IX_Address_profile_instance_addresstype [3 KEYS] ProfileId {int 4}, InstanceId {int 4}, AddressType {int 4} Reads: 149677 (53,247 seek) Writes:10,523 1-我真的需要前两个索引,还是应该删除它们? 2-正在运行的查询使用profileid = xxxx的使用条件,以及其他使用profileid = xxxx且InstanceID = xxxxxx的使用条件。为什么优化器选择第三索引而不是第一索引或第二索引? 我也正在运行一个查询,使每个索引上的Lock等待。如果我得到这些计数,应该怎么做才能调整该指数? Row …

2
为什么SQL Server Management Studio崩溃?
当我打开SSMS时,收到以下消息: SSMS-SQL Server Management Studio遇到问题,需要关闭。对此造成的不便,我们表示歉意。 我能做什么? 重新启动后问题仍然存在,并且我没有安装任何加载项。 这是在Windows XP上运行的SQL Server 2008 R2 SSMS。 SSMS之前在此计算机上运行没有错误。 不是仅从SQL Server程序包中安装SSMS。建议重新安装软件包吗?或者如何单独安装SSMS? 对于所有用户,都会发生相同的问题。

1
移动大型PostgreSQL / PostGIS数据库
我需要将非常大的PostGIS数据库(约320 GB)从server1(PostgreSQL 9.1,PostGIS 1.5)升级到server2(PostgreSQL 9.3,PostGIS 2.1)。 升级过程有据可查。问题是我在server1上没有足够的空间将文件转储到那里,对其进行校验和,然后将其复制到server2并验证总和。我试过了: 从管道中转储服务器1到Server2上使用nc。 将转储文件直接写入到使用挂载在server1上的server2文件系统中。sshfs 两次转储文件似乎已损坏。pg_restore在不同的地方出现错误,如下所示: pg_restore: [compress_io] could not uncompress data: incorrect data check 谁能建议一种更好的方法来完成此迁移和升级? 更新:尝试了NFS(并再次尝试SSHFS)。显然,这些远程文件系统无法可靠地传输大量数据。生成的SQL文件中明显缺少块,从而在导入期间导致如下语法错误: ERROR: invalid input syntax for integer: "8266UPDATE spatial_ref_sys o set auth_name = n.auth_name, auth_srid = n.auth_srid, srtext = n.srtext, proj4text = n.proj4text FROM _pgis_restore_spatial_ref_sys n WHERE o.srid = n.srid;"

2
生成差异的最有效方法
我在SQL Server中有一张表,看起来像这样: Id |Version |Name |date |fieldA |fieldB ..|fieldZ 1 |1 |Foo |20120101|23 | ..|25334123 2 |2 |Foo |20120101|23 |NULL ..|NULL 3 |2 |Bar |20120303|24 |123......|NULL 4 |2 |Bee |20120303|34 |-34......|NULL 我正在研究要比较的存储过程,该过程需要输入数据和版本号。输入数据具有“名称”更新字段Z中的列。预期大多数字段列为NULL,即,每行通常仅具有前几个字段的数据,其余的均为NULL。名称,日期和版本对表构成唯一约束。 对于给定的版本,我需要针对该表比较输入的数据。每行都需要进行区分-通过名称,日期和版本来标识一行,并且字段列中任何值的任何更改都需要在差异中显示。 更新:所有字段都不必为十进制类型。其中一些可能是nvarchars。我希望diff在不转换类型的情况下发生,尽管diff输出可以将所有内容转换为nvarchar,因为它仅用于显示目的。 假设输入为以下,并且请求的版本为2: Name |date |fieldA |fieldB|..|fieldZ Foo |20120101|25 |NULL |.. |NULL Foo |20120102|26 |27 |.. |NULL Bar …

6
创建SQL Server性能基准监视
为了获得概述和可比较的数据,我当前的任务是创建性能基准,以获取有关不同生产SQL Server实例的一些数据。 我的想法是: 我想使用几个DMV 我想包括一个探查器跟踪(包括执行计划) 我想包含性能数据 因此,我试图实现的是一个可启动和可停止(也可调度)的常规性能监视,该监视将返回: 识别正在进行的性能优化任务是否成功所需的所有信息 几个汇总的简单图形,有助于形象化长期进展。用于管理;-) 探查器跟踪中的可重新执行执行计划,以比较单个队列的更改和索引优化任务的改进 我发现了一些描述性能基准创建的信息。它们中的大多数要么非常复杂,要么仅关注所需的性能指标之一(主要是性能数据)。 最匹配的示例/描述如下:为SQL Server创建性能基准 问题是: 有没有人有以快速可行的方式创建这种性能监视器的经验?

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.