小编Nic*_*mas的帖子

盲目添加缺失的索引可以吗?

我经常使用 SSMS 来测试我的慢速存储过程是否缺少索引。每当我看到“缺少索引(影响 xxx)”时,我的下意识反应就是创建新索引。据我所知,这每次都会导致更快的查询。

为什么我不应该继续这样做?

index sql-server-2008 sql-server ssms

21
推荐指数
2
解决办法
4524
查看次数

你应该在哪里定义外键?

在数据库中定义外键还是在应用程序的代码部分中定义外键更好?

foreign-key database-design best-practices

21
推荐指数
4
解决办法
7783
查看次数

跟踪存储过程的使用

除了使用 SQL Server Profiler 之外,还有什么方法可以跟踪正在使用的存储过程,或者至少是上次执行它们的时间?

sql-server-2008 sql-server statistics

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

Oracle 的 VARCHAR 和 VARCHAR2 数据类型之间有什么区别?

将来自其他 DBMS 的表迁移到 Oracle 时,标准任务之一是将所有VARCHAR(n)字段替换为VARCHAR2(n)字段(前提是 n <= 4000)。

为什么 Oracle 称这种数据类型VARCHAR2而不是VARCHAR像其他 DBMS 一样?

oracle datatypes

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

如何在 Oracle 中声明和使用变量?

我的主要技能是使用 SQL Server,但有人要求我对 Oracle 查询进行一些调整。我编写了以下 SQL:

declare @startDate int
select @startDate = 20110501
Run Code Online (Sandbox Code Playgroud)

我得到这个错误:

declare @startDate int
select @startDate = 20110501
Error at line 1
ORA-06550: line 1, column 9:
PLS-00103: Encountered the symbol "@" when expecting one of the following:

   begin function package pragma procedure subtype type use
   <an identifier> <a double-quoted delimited-identifier> form
   current cursor
Run Code Online (Sandbox Code Playgroud)

如何在 Oracle 中声明和使用变量?

oracle syntax oracle-10g

20
推荐指数
2
解决办法
22万
查看次数

SQL Server 位列是否真的使用了整个字节的空间?

我在 SSMS 周围闲逛,注意到我的INT列的“大小”是 4 个字节(预期),但看到我的BIT列是一个完整字节时,我有点震惊。

我误解了我在看什么吗?

sql-server datatypes

20
推荐指数
3
解决办法
6411
查看次数

为什么我不能使用 NEWSEQUENTIALID() 作为我的列的默认值?

我正在尝试在 Management Studio 中创建一个表,在阅读了新的(从 SQL 2005 开始)NEWSEQUENTIALID()函数后,我想试一试。

这就是我正在做的:

在此处输入图片说明

但它不让我。我得到的错误信息是:

'FormTemplate (Forms)' table - Error validating the default for column 'FormTemplateId'.
Run Code Online (Sandbox Code Playgroud)

我在这里错过了一个技巧吗?我肯定在运行 SQL Server 2008 R2。

sql-server-2008 database-design ssms default-value

19
推荐指数
2
解决办法
3535
查看次数

为什么“SELECT POWER(10.0, 38.0);” 抛出算术溢出错误?

我正在更新我的IDENTITY溢出检查脚本以考虑DECIMALNUMERIC IDENTITYcolumns

作为检查的一部分,我计算每一IDENTITY列的数据类型范围的大小;我用它来计算该范围的百分比已用完。因为DECIMALNUMERIC 该范围的大小2 * 10^p - 2p是精度在哪里。

我用DECIMALNUMERIC IDENTITY列创建了一堆测试表,并尝试按如下方式计算它们的范围:

SELECT POWER(10.0, precision)
FROM sys.columns
WHERE 
       is_identity = 1
   AND type_is_decimal_or_numeric
;
Run Code Online (Sandbox Code Playgroud)

这引发了以下错误:

Msg 8115, Level 16, State 6, Line 1
Arithmetic overflow error converting float to data type numeric. 
Run Code Online (Sandbox Code Playgroud)

我将它缩小到IDENTITY类型的列DECIMAL(38, 0)(即具有最大精度),然后我POWER()直接尝试对该值进行计算。

以下所有查询

SELECT POWER(10.0, 38.0);
SELECT CONVERT(FLOAT, (POWER(10.0, 38.0)));
SELECT CAST(POWER(10.0, 38.0) …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server datatypes t-sql type-conversion

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

我怎样才能学习成为一名 DBA?

对您 DBA 等人的问题:您如何在没有“亲自”或在职培训的情况下学习成为 DBA 的技能?

我在 DB 工作中的经验是通过 MyPHPAdmin 或类似的东西来处理 MySQL。没有做大量的深入工作。

上课?SQL 书籍?

career

16
推荐指数
4
解决办法
2万
查看次数

您在使用 SQL Server 时遇到的前 3 个性能问题是什么?

我是埃因霍温 Fontys 大学的学生,我目前正在进行一系列采访以帮助开发 SQL Server 工具,我想从该领域的专家那里得到反馈。

我的问题之一是:

您在使用 SQL Server 实例时遇到的前 3 个性能问题是什么?您如何确定这些问题?

我对用于衡量这一点的脚本和工具特别感兴趣。

performance sql-server

15
推荐指数
8
解决办法
1429
查看次数