小编Han*_*non的帖子

将 Oracle 角色映射到 Active Directory 组?

是否有任何内置方法将 Oracle 数据库角色映射到 Microsoft Active Directory 组?

oracle security role

9
推荐指数
1
解决办法
1949
查看次数

如何确定哪些表导致数据库随着时间的推移而增长?

我在 SQL Server 2008 中有一个一直在增长的数据库,我想知道哪些表在过去 6 个月中增长最快。

sql-server-2008 sql-server

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

我可以在两张桌子上进行 sargable 首字母匹配吗?

select value 
from persons p join persons2 p2 
    on left(p.lastname,1) = left(p2.lastname,1)
Run Code Online (Sandbox Code Playgroud)

SQL 服务器。有没有办法让这个 SARGable/运行得更快?我无法在persons 表上创建列,但我可以在persons2 上创建列。

sql-server

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

哪种 SQL 标准得到最广泛和完全的支持?

我想专注于 SQL 语言规范之一,以供学习和参考。哪个版本的 SQL 标准在 DBMS 中得到最广泛的支持,以便我可以将时间和精力集中在它上面?

sql-standard

8
推荐指数
3
解决办法
487
查看次数

PostgreSQL:查询全局表空间的位置?

我一直在努力让我们的数据库客户端主动避免填满他们正在使用的数据库所在的分区。

由于我们所有的客户端都与数据库管理器在同一台主机上,因此对于用户创建的表空间来说应该很容易;客户端可以查找表空间的文件系统路径(在 spclocation 中),并使用操作系统调用来检查有多少可用空间:

adb=> select * from pg_tablespace;

  spcname   | spcowner |    spclocation    |       spcacl        
------------+----------+-------------------+---------------------
 pg_default |       10 |                   | 
 pg_global  |       10 |                   | 
 adb        |  2033793 | /database/adb     | {adb=C/adb}
Run Code Online (Sandbox Code Playgroud)

我无法从客户端看到如何获取全局表空间存储位置的路径;在上面的查询中为它返回一个空字符串。

不幸的是,我们在该领域有许多遗留系统使用在全局表空间中创建的特定数据库,将它移到用户创建的表空间中将是一项巨大的努力。

希望我只是错过了一些非常简单的东西。

postgresql disk-space

8
推荐指数
1
解决办法
2万
查看次数

活动监视器显示 WAITFOR RECEIVE 的持续时间很长

在活动监视器中,以下查询导致高 CPU 和 281 毫秒的平均持续时间。

WAITFOR (
RECEIVE conversation_handle
    , service_contract_name
    , message_type_name
    , message_body 
FROM ExternalMailQueue 
INTO @msgs
)
, TIMEOUT @rec_timeout
Run Code Online (Sandbox Code Playgroud)

任何想法或步骤如何解决这个问题?

sql-server service-broker

8
推荐指数
1
解决办法
1万
查看次数

我可以在多个磁盘上进行完整备份吗?

目前,我只有一个备份文件 IMTDB.bak,它与数据库本身在同一个 HDD 上。我想通过本质上将它“复制”到另一个磁盘来增加这个数据库备份的冗余,但是我收到一个错误“服务器备份失败,媒体被格式化为支持 2 个媒体系列”。我认为这意味着当我创建备份时,它只是将备份放在一个驱动器上,我不能追溯添加更多。我想将备份迁移到另一个驱动器(实际上只是复制它),但我不想删除当前备份来执行此操作。

我该怎么办?将 IMTDB.bak 复制到另一个驱动器上的文件夹是否安全?

sql-server sql-server-express sql-server-2014

8
推荐指数
2
解决办法
2267
查看次数

将用户添加到多个数据库

我在一台服务器上有 980 个数据库,我应该授予几个用户只读访问权限。

我当然不想运行alter DB add user...语句,因为它绝对是耗时的。

不知道有没有用exec sp_addrolemember 'db_datareader', 'user'

有人可以让我知道是否可以做其他事情吗?

sql-server

8
推荐指数
2
解决办法
8033
查看次数

即使使用非聚集索引和全文索引,SE​​LECT 查询也很慢

我试图从表中查询 0 到 65,000 行。

服务器使用的是Microsoft SQL Server 2014,我无法更改服务器上的硬件。

架构

[Id] (PK)        INT      
[varchar1]  VARCHAR(4)     Normal Cardinality
[varchar2]  VARCHAR(250)   Normal Cardinality
[varchar3]  VARCHAR(250)   Normal Cardinality
[varchar4]  VARCHAR(100)   Normal Cardinality
[date1]     DATETIME       High Cardinality
[varchar5]  VARCHAR(100)   Low Cardinality
[varchar6]  VARCHAR(1000)  Normal Cardinality
[varchar7]  VARCHAR(100)   Normal Cardinality
[varchar8]  VARCHAR(20)    Normal Cardinality
[varchar9]  VARCHAR(100)   High Cardinality
[xml1]      XML            Low Cardinality
Run Code Online (Sandbox Code Playgroud)

询问

以下查询是存储过程的一部分(其余部分无关紧要,因为它对存储过程的性能影响不大)。列名称已替换为列类型和编号:

SELECT   [varchar1]
       , [varchar4]
       , [date1]
       , [varchar5]
       , [varchar6]
       , [varchar7]
       , [varchar8]
       , [varchar9]
       , [xml1]
FROM [database].[dbo].[table] WITH …
Run Code Online (Sandbox Code Playgroud)

sql-server stored-procedures t-sql sql-server-2014

8
推荐指数
1
解决办法
2200
查看次数

由于 INSTEAD OF 触发器,OUTPUT 子句为新插入的标识值返回 0

考虑以下最小、完整且可验证的示例代码(请参阅此处的 dbfiddle):

CREATE TABLE [dbo].[test]
(
      [i] bigint NOT NULL 
        identity(1,1) 
        PRIMARY KEY CLUSTERED
    , [d] varchar(10) NOT NULL
);
GO
Run Code Online (Sandbox Code Playgroud)

使用INSTEAD OF INSERT, UPDATE触发器:

CREATE TRIGGER [dbo_test_trigger]
ON [dbo].[test]
INSTEAD OF INSERT, UPDATE
AS
BEGIN
    IF ROWCOUNT_BIG() = 0 RETURN;

    SET NOCOUNT ON;

    MERGE INTO [dbo].[test] [target]
    USING [inserted] [source] ON [target].[i] = [source].[i]
    WHEN NOT MATCHED THEN
        INSERT
        (
            [d]
        )
        VALUES 
        (
            [source].[d]
        )
    WHEN MATCHED THEN 
        UPDATE
        SET [target].[d] = [source].[d];
END; …
Run Code Online (Sandbox Code Playgroud)

trigger sql-server output-clause

8
推荐指数
2
解决办法
440
查看次数