标签: sql-server-2008

无法在 Server 2008/x86/SQL Server 2008 机器上运行 SQL Server 2012 RTM LocalDB

我已经在我的开发机器上安装了 SQL Server 2012 和 LocalDB,并且能够使用 SQL Server 管理工具 2012 和使用新修改的连接字符串从我的 winform 应用程序中连接到 LocalDB,如下所示:

Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Integrated Security=True;Connect Timeout=60
Run Code Online (Sandbox Code Playgroud)

当我尝试将我的应用程序移植到运行 SQL Server 2008 的 Windows 2008 Server 时出现问题(我知道我可以跳过 LocalDB 安装而只使用 SQL Server 2008,但我只是在测试我的应用程序的安装在这台机器上..)

我已经安装了 SQL Server 2012 LocalDB 并使用位于http://support.microsoft.com/kb/2544514 的知识库文章将 .net 4.01 更新为 .net 4.02

我不断收到收到一个错误,当我尝试连接到(LocalDB)\v11.0来自我的应用程序,并从SQL Server管理工具2008,我也手动启动(LocalDB)\v11.0cmd->SQLLocalDB -s "v11.0",然后尝试再次连接使用NP

IE np:\\.\pipe\LOCALDB#8B2C7490\tsql\query

当我使用命名管道时,一切都连接正常,所以我假设这样有效,那么 LocalDB 的安装也是正确的。

你建议我怎么做来解决这种情况?

我还担心随着我的应用程序部署的正确实施,我现在是否应该将 .Net 4.03 作为先决条件?如果是这样,是否已经有一个 clickonce bootstrap 清单可用于此,或者我是否需要创建一个..以便我的应用程序正常工作,我真的很担心 LocalDB 可能会破坏它..到目前为止我还没有多幸运..

我想如果所有其他方法都失败了,我可以重新使用 SQL Server Express 2008,因为此实现之前可以正常工作..

谢谢,

sql-server-2008 sql-server-2012

6
推荐指数
1
解决办法
1634
查看次数

使用动态 SQL 在不同的数据库中创建视图

作为一个更大项目的一部分,我试图在 SQL Server 实例中的每个数据库上创建一个新视图。

我创建了一个存储过程,其中包括通过游标循环遍历实例中的数据库,然后尝试使用sp_executesql. 不幸的是,我试图在其上创建视图的数据库中不存在存储过程。所以我试图让 sql server 使用该数据库,然后运行创建视图脚本。当我运行它时,我收到错误

'CREATE VIEW' 必须是查询批处理中的第一个语句。

关于我如何做到这一点的任何想法?这是sp_executesql程序的一部分。

declare @DB VARCHAR(50)
declare @SQL NVARCHAR(max)
set @DB = '[dbname]'

SET @SQL =  N'USE ' + @DB + N' CREATE VIEW vNonhiddenCategories 
AS
SELECT categories.categoryid
FROM categories
--WHERE ... irrelevant remainder of view code ...
'
execute sp_executesql @SQL
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server dynamic-sql t-sql

6
推荐指数
1
解决办法
9934
查看次数

将表传入存储过程

是否可以将表名传入存储过程?

例如,假设您有同一个表的多个视图。它们都具有完全相同的结构。

您需要一个可以为任何视图运行的存储过程。

就像是:

create procedure myprocedure
@tableName varchar(50) = ''
select blah from @tableName where blah = blah2 
Run Code Online (Sandbox Code Playgroud)

当我尝试这样做时,我得到

Must declare the table variable @tablename
Run Code Online (Sandbox Code Playgroud)

任何想法我怎么能做到这一点?

sql-server-2008 sql-server stored-procedures

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

NESTING_TRANSACTION_FULL 锁存器

SQL Server 2008 生产性能远低于预期。与下班后的 250 毫秒相比,简单的单表查询有时在中午工作 5 秒。当负载增加时,我们无法找到哪个资源是瓶颈。

通常关于性能调优的建议无济于事。CPU未过载(约30%),页面寿命约1.5小时;IO 队列几乎总是空的。sys.dm_os_wait_statswait_time_ms:有一个可疑的记录引导视图LATCH_EX。最大的锁存器(比第二大锁存器大 4 倍)是NESTING_TRANSACTION_FULL. 这被描述为“仅供内部使用”

请问NESTING_TRANSACTION_FULL统计意味着什么?它能否为我们提供诊断其配置、硬件、应用程序等问题的线索?

performance sql-server-2008 sql-server

6
推荐指数
1
解决办法
3954
查看次数

DML 操作的 SQL Server 并行性

我知道 SQL Server 可以将并行性用于某些 DDL 操作,例如索引重建或某些 SELECT 语句,当查询成本超过并行性成本阈值时,很可能在数据仓库环境中。

从版本 8i 开始,ORACLE 提供并行 DML操作,如 INSERT、UPDATE 或 DELETE。

SQL Server 是否对 DML 操作使用并行性?

sql-server-2005 sql-server-2008 sql-server

6
推荐指数
1
解决办法
2433
查看次数

SQL Server 数据库:从 2008 年迁移到 2005 年 - 加密过程问题

我通常可以使用生成脚本/ DTS 来移动数据和表等。但是,其中一个数据库有大量的加密程序,我无法通过脚本来移动它们。

我也没有旧的 2005 年数据库备份。

我没有手动恢复解密程序。

有什么办法可以复制/移动它们吗?

sql-server-2005 sql-server-2008 stored-procedures

6
推荐指数
1
解决办法
1091
查看次数

如何使用镜像创建没有日志的 SQL Server 2008 备份

如何在没有任何日志的镜像设置中创建 SQL Server 2008 的备份?

我们需要这样做,以便在我们恢复本地开发数据库时,我们将拥有最新的数据,但我们不一定有所有事务日志的空间。(我们都在使用 ssd)。

目前,因为它是镜像的,我不能创建简单的备份,它必须是完整的备份。

sql-server-2008 sql-server backup

6
推荐指数
1
解决办法
3125
查看次数

在具有许多非常相似的起始值的 VARCHAR 列上建立索引是否会导致性能不佳

我们似乎在使用索引的查询上有非常不寻常的糟糕性能。例如表格看起来像

  • PK BIGINT
  • ID VARCHAR(50)
  • 第 1 列
  • Col2
  • 等等

所以我们需要在数据库中插入一行,然后在 ID 上查找。但是第三方拥有的 ID 和我们有 PK。我们需要拿回PK。但是这些 ID 中很大一部分具有非常相似的起始值。例如

  • "//45-423484834893457"
  • "//45-573459834589345"
  • "//45-345345345345345

我不确定 SQL Server 是如何遍历 BTree 的,如果它从最左边的位置开始对值进行哈希处理或进行字符串比较。

在查询这些值时,具有非常大范围的非常相似的值(至少前 4 个字符是相同的)是否会导致索引性能不佳?

更新:

抱歉,查找查询是

SELECT PK_Column FROM table WHERE ID = @ID
Run Code Online (Sandbox Code Playgroud)

标记要求:

SQL Server parse and compile time: 
   CPU time = 0 ms, elapsed time = 0 ms.

 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.
SQL Server parse and compile time: 
   CPU time = …
Run Code Online (Sandbox Code Playgroud)

index sql-server-2005 sql-server-2008 sql-server sql-server-2008-r2

6
推荐指数
1
解决办法
3610
查看次数

导入数据的解决方法

我正在尝试将数据导入 SQL Server。我可以通过导入和导出数据向导导入。我无法使用BULK IMPORTOPENROWSET因为文件不在服务器机器上从我的机器导入。IED 向导如何将数据插入其目标数据库?是一行一行的吗?

从我的机器导入数据还有其他可能的解决方案吗?

sql-server-2008 import

6
推荐指数
1
解决办法
225
查看次数

重建索引对 mdf/ldf 文件有影响 SQL Server 2008

重建索引时使用了选项 'SORT_IN_TEMPDB = ON' 以避免不必要地增加用户数据库文件。

它到底是什么意思?

是否完成了完整的过程TempDB并且mdf/ldf文件大小不增加?

比如reindex之前(数据库处于简单恢复模式),数据库最大索引大小为25GB

  • .mdf 大小(已分配和使用 100GB --> 没有可用空间)
  • .ldf 大小 (20GB)
  • TempDB 有 200GB 可用空间

.mdf&.ldf文件的大概大小是多少。他们成长还是不成长?

performance index sql-server-2008

6
推荐指数
2
解决办法
3196
查看次数