UTF-8字符(将近一百万条logging)被导入到西欧的varchar(max)中。 有什么已知的方法来解决这个SQL? 我们已经证实,显示的“垃圾”字符实际上是基于西欧编码中表示UTF-8hex值的不正确字符。 看起来,在varchar字段中的基础hex是正确的。 理想情况下,我们希望能够在SQL中解决这个问题,而不是重新导入数据。
我们的应用程序使用.net sql驱动程序,查询最终在profiler中看起来像这样: sp_executesql N'query where @param = ?, and param2 = ?', param, param2, param3, etc 当从Profiler复制并粘贴查询到SQL Serverpipe理工作室时,查询将在不到一分钟的时间内运行,从应用程序执行15到20分钟。 据我所知他们都使用相同的执行计划,所以我不知道会有什么不同。 为了增加奇怪性,我们还有一个基本上是生产服务器副本的testingsql服务器。 在我们的testing环境中,使用相同的代码和大部分相同的数据(生产date过了几天),查询在我们的应用程序以及sql server management studio中运行不到一分钟。 探测器再一次捕捉到所有这些执行计划。 我发现的唯一的事情使查询运行正确的是在数据库上运行sp_updatestats,我们每天早上5:00运行。 奇怪的是到凌晨7点,查询仍然会再次缓慢运行。 如果我再次运行sp_updatestats,查询将在一分钟内完成。 再一次,所有的执行计划看起来都是一样的。 我肯定错过了什么。 有任何想法吗?
让我们假设一个用户“Bob”获得来自John的SELECT权限,Bob也从另一个用户Joe获得SELECT权限,但是这次使用GRANT选项。 如果有人从级联中撤消Bob的select权限,会发生什么? 鲍勃的账户和鲍勃所授权的所有账户(即使他们之前已经从其他地方像组织了吗? 如果是这样,整个组是否会松动Select权限或只有一个有Bob的Select权限的用户呢?
我正在运行SQL Server 2008 R2,并且我的本地服务器实例有问题。 起初,这只是偶尔发生,看起来完全是随机的,但是当我重新启动计算机时已经修复了。 但是,现在这是一个不变的问题。 当我尝试通过pipe理工作室连接到我的服务器时,无法连接显示“服务器无法find或无法访问”的信息。 有时候发生这种情况时,我可以打开我的Sql Serverconfigurationpipe理器,并可以快速find并启动我的本地实例,我很高兴。 但是,最近,我经常无法find服务器,而不是显示列表中的许多项目,我只看到两个Sql Server集成服务项目。 当我检查Services.msc,我可以find正确的服务,SQL Server(MSSQLSERVER2008),但是当我尝试启动它,我得到一个错误,指出“Windows无法启动本地SQL Server(MSSQLSERVER2008)服务计算机错误1053:该服务没有及时响应启动或控制请求。“ 作为一个方面说明:当我尝试启动虚拟磁盘服务时也遇到同样的错误,并且无法访问我的磁盘pipe理。 当我尝试从命令行启动服务时(通过转到文件夹C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER2008\MSSQL\Binn并执行sqlservr.exe ),它最终会导致一个错误,指出SQL Server Windows NT – 64位已停止工作,并给我closures程序的选项。 检查事件查看器日志产生这个: 由于以下原因之一,Windows无法访问文件C:\ Windows \ System32 \ netapi32.dll:networking连接,存储文件的磁盘或安装在此计算机上的存储驱动程序出现问题; 或磁盘丢失。 由于这个错误,Windowsclosures了程序SQL Server Windows NT-64 Bit。 程序:SQL Server Windows NT – 64位文件:C:\ Windows \ System32 \ netapi32.dll 附加数据部分列出了错误值。 用户操作 1.再次打开文件。 这种情况可能是一个暂时的问题,当程序再次运行时会自行纠正。 2.如果文件仍然无法访问,并且 – […]
我有以下工具包: Windows Server 2008r2 Microsoft SQL Server 2008r2 双四核Xeon 52GB的Ram 服务器上的Ram使用率目前为98%,这很好,SQL服务器正在愉快地采取它所需要的。 我想知道的是,我将如何衡量它实际需要多less内存? 我怎么知道什么时候需要添加更多或者如果我可以拿走一些? 我已经将内存使用量减less到了40GB,我的磁盘写入/读取当前位于: 5分钟以上的数据库活动 磁盘读取/秒:平均:59 磁盘写入/秒:平均:95 这是正确的反检查? 我很高兴离开数据库服务器与40GB的RAM,但我想知道它是否还有太多 – 它的虚拟环境,所以我可以在其他地方使用这些资源。 “ 谢谢
对于一个项目,我正在使用SQL Server 2008 R2。 一个表有一个文件stream列。 我做了一些负载testing,现在数据库有20GB的使用。 我有空表,除了几个(configuration表)。 但是我的数据库还在使用很多空间。 所以我使用Task -> Shrink -> Database / Files但我的数据库仍然使用像16GB的东西。 我发现它的文件stream文件仍然使用了很多空间。 问题是我需要备份这个数据库将其导出到最终的生产服务器上,如果我指出压缩备份的事件,我得到一个超过3.5Go的文件。 不方便存储和上传。 而且我正在计划更大的testing,所以我想知道如何缩小这个空间。 当我尝试时: 我得到这个例外: The properties SIZE, MAXSIZE, or FILEGROWTH cannot be specified for the FILESTREAM data file 'FileStreamFile'. (Microsoft SQL Server, Error: 5509) 所以我该怎么做? 我发现这个错误的几个主题,但他们是关于删除filestream列。
我试图从桌面连接到SQL Server 2012(在不同的服务器上),并得到以下错误: 连接超时已过期。 login后阶段过去的超时时间。 在等待服务器完成login过程和响应时,连接可能已经超时; 或者尝试创build多个活动连接时可能已超时。 试图连接到这个服务器的时间是[Pre-Login] initialization = 190; 握手= 4; [login]初始化= 0; authentication= 102; [login后]完成= 14002; (Microsoft SQL Server) 客户端是SQL Server Management Studio 2012.服务器上的防火墙已closures。 我可以 telnet到端口1433.从服务器上的Studio连接本身工作正常。 桌面和服务器在同一网段; 使用Windows身份validation。 Windows Server 2008 R2和SQL Server都是从头开始构build的。 令我感到困惑的是login后阶段。 我有一种感觉,我正在寻找错误的地方(即networking连接); 但不知道什么地方会是正确的
如您所见,我的两个Windows Server故障转移群集(WSFC)节点每个都有三个networking接口,将它们连接到三个不同的networking: 公共networking 由WSFC节点组成的专用networking 由WSFC节点组成的专用networking和带有WSFC Quorum Witness File Share的机器 我计划的networkingconfiguration是否合理? 我有“正确的”数量的网卡和networking吗? 我在想第二个NIC /networking可能是不必要的。 我的两个MongoDB副本集节点也有三个networking接口 – 非常类似于以前的情况: 公共networking 由主要和辅助MongoDB副本集节点组成的专用networking 由主,副和仲裁者MongoDB副本集节点组成的专用networking 这个networkingconfiguration是否有意义? 我有“正确的”数量的网卡和networking吗? 我在想第二个NIC /networking可能是不必要的。 这是我正在考虑的更简单的版本: 更新:
我正在尝试创build一个SQL代理作业,它将运行保存在我的系统上的PowerShell脚本。 但是,作业失败,出现以下错误: 作业步骤在PowerShell脚本的第1行收到错误。 相应的行是'g:\ PowerShellShare \ Get-LastDBBackups.ps1'。 纠正脚本并重新安排工作。 PowerShell返回的错误信息是:'AuthorizationManager检查失败。 如果我将代理帐户添加到本地pipe理员,它可以工作,所以它似乎是一个权限问题(使本地pipe理员中的帐户不是我的环境的选项)。 每次运行作业时,Windows安全日志都会显示多个具有事件ID 4656的审核失败,它们都来自试图访问对象的代理帐户: Object: Object Server: SC Manager Object Type: SERVICE OBJECT 快速sc sdshow scmanager表明, Authenticated Users应该有权访问scmanager: D:(A;;CCLCRPRC;;;AU)(A;;CCLCRPRC;;;IU)(A;;CCLCRPRC;;;SU)(A;;CCLCRPWPRC;;;SY)(A;;KA;;;BA)S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD) 最令人费解的是,如果我RUNAS服务器上的代理帐户,并运行脚本,它运行得很好。 我尝试通过SQL代理作业运行哪个脚本并不重要,试图执行任何脚本导致相同的行为。 然而,我可以运行其他的PowerShell命令,只是不执行任何脚本。 希望以前有人遇到这个问题,可以指引我正确的方向。 更新:似乎主要的问题是,当我从SQL代理作业执行时,我的代理帐户不是交互式隐式安全组的成员。 看起来,这个组织正在授予代理使用RUNAS进行testing时所需的成功运行任务的权限。 我无法追查这个组允许的所有权限。 我所看到的审计失败是针对WinHttpAutoProxySvc和CryptSvc服务的。 我使用sc sdshow和sc sdset来修改这些特定服务的权限,以便Authenticated Users权限与Interactive Users组的权限匹配。 审计失败现在消失了,但是当我执行这个工作时,我仍然在SQL中得到相同的错误信息。
我们需要使用SQL Serverencryption,所以我们启用了ForceEncryption。 根据文档,如果没有提供证书,SQL Server将生成自己的内部证书来执行encryption。 我们需要了解它提供的encryption级别。 我认为我们通常使用2048位的证书。 内部/后备证书位于哪个证书商店? 我们如何获得encryption级别?