小编Mar*_*son的帖子

在 asc 和 desc 两个方向上创建索引

在过去的几周里,我一直在对旧的 Firebird 数据库发火。由于各种原因,这个数据库很糟糕,但我注意到的一件事是每个表每个字段都有两个索引;每一个都有一个片段,一个按顺序,一个按顺序。ascdesc

除了为每个表中的每个字段都有一个索引的重要性之外,它让我思考 - 单段索引有两个具有相同索引段但一个 indesc一个 in 的索引有什么优势asc吗?有什么可以得到的,或者现代 DBMS 是否会简单地使用asc索引并从头开始并在需要时向后工作?

index firebird

9
推荐指数
2
解决办法
2366
查看次数

从不再存在的用户那里窃取数据库的所有权

我们有几个 SQL Server 2008 R2 数据库,其中的成员域发生了更改(即它已连接到DOMAINA并且现在位于DOMAINB)。我们有三个数据库,其中数据库的所有者是DOMAINA\User,该数据库不再存在。

我试图登录到SQL Server作为DOMAINB\Administratorsa和运行以下命令:

ALTER AUTHORIZATION ON DestDB TO sa
Run Code Online (Sandbox Code Playgroud)

错误:

消息 15151,级别 16,状态 1,第 1 行
找不到对象“DestDB”,因为它不存在或您没有权限。

我在(显然不正确的)假设下sa可以在服务器上做几乎任何事情。

我怎样才能取回这些数据库的所有权?

permissions sql-server-2008-r2

7
推荐指数
1
解决办法
656
查看次数

删除一百万条记录后该怎么办

我们正在我们的系统中实施一项新功能,这将导致smallint每晚从表中清除大约一百万条记录(每条记录都很小,基本上是一个 GUID、一个日期和四个字段)。基本上它是一个缓存表,一旦数据存在 7 天,我们就会:

DELETE FROM scheduleCache WHERE schDateCreated < '2013-08-26

这将在每晚凌晨 1 点运行,每次运行将清除大约一百万条记录。

对于这样的桌子,我应该注意或做些什么吗?我应该把什么属性放在桌子上,或者我应该定期运行什么程序来“清理”?我以前从未处理过这样的桌子。

该表有一个聚集索引(GUID + 一个smallint字段),我们有每周一次的索引重建,每周日早上运行。

sql-server-2008 delete

7
推荐指数
1
解决办法
677
查看次数

无法进一步调优数据库;接下来是什么?

我们有一个供应商提供的应用程序。它正在支持中,我们正在与他们的开发人员交谈(我们拥有他们最大的数据库大小一个数量级),但与此同时,我们有以下每天运行数千次的查询,只有部分更改了ABCDEFG12345where条款中。where's 中的几乎所有内容都是可定制的,因为它是由他们的主要工作搜索生成的查询。

dJobs 表中大约有 500,000 条记录,连接表中的记录数也差不多:

select * from (
    select   top       20 * from (
        select  top       20 
            (       --Start Count
                select count(*) from dJobs
                left join dClients on cltClientID = jobClientId 
                left join dJobStatus ON jbsID = jobJobStatus    

                where ((jobSupervisor=         -1.00000000  or jobCoordinator=         -1.00000000 )  OR 1=1 ) 

                and 
                (
                (jobjobStatus=0 OR (0=0  AND 0=0)) 
                AND (jbsType=0 OR (0=0  AND 0=0)) 
                AND (jobPriority=0 OR (0=0  AND 0=0)) 
                AND (jobEventID=0 OR (0=0 AND 0=0))
                AND …
Run Code Online (Sandbox Code Playgroud)

performance sql-server sql-server-2008-r2 query-performance performance-tuning

5
推荐指数
2
解决办法
333
查看次数

一个 SQL Server 2014 提供不同的密码哈希

我一直在使用基于 MicrosoftEXEC sp_help_revlogin脚本的脚本来同步主机之间的 SQL Server 用户名和密码。这在 SQL Server 2008 R2 上已经运行了很长时间,但是随着我们计划迁移到 SQL Server 2014,我遇到了一个障碍。

我有三台暂存 SQL Server 2014 机器。在所有服务器上,我运行以下命令:

CREATE LOGIN [TestAccount] 
WITH PASSWORD = N'1234567890', 
     DEFAULT_DATABASE = [master], 
     CHECK_EXPIRATION = OFF, CHECK_POLICY = OFF
Run Code Online (Sandbox Code Playgroud)

对于其中两个,我得到一个生成的“创建”命令:

CREATE LOGIN [TestAccount] 
WITH PASSWORD = 0x010075DDCA54FCEF12CB11C4E64040E877B9FF5872C41EB98095 HASHED, 
     SID = 0xCA78345104805C4E89004969D05D551B, 
     DEFAULT_DATABASE = [master], 
     CHECK_POLICY = OFF, CHECK_EXPIRATION = OFF
Run Code Online (Sandbox Code Playgroud)

凉爽的。到现在为止还挺好。但是,在第三台服务器上,我收到了一个“创建”命令:

CREATE LOGIN [TestAccount] 
WITH PASSWORD = 0x02002F6CB52E7F571AD422689021EB9EC1BE2AB4576AE6EC12485333A4CB892A9197B440E1471376A5AAC5160847F636A637D1F499880D7653ABC4DB4714746856E01DE41E09 HASHED, 
     SID = 0x19337EA32254A64F8FC018474B58DBA5, 
     DEFAULT_DATABASE = [master], 
     CHECK_POLICY = OFF, CHECK_EXPIRATION = OFF
Run Code Online (Sandbox Code Playgroud)

哪个不起作用。哈希太大了。 …

sql-server sql-server-2014

4
推荐指数
1
解决办法
1639
查看次数