-
sql-server-2008 – 编写SQL查询的最佳方法,该查询检查列是否为
所属栏目:[MsSql教程] 日期:2020-12-31 热度:67
我有一个SP,其参数具有NULL作为默认值,然后我想进行如下查询: SELECT ...FROM ...WHERE a.Blah = @Blah AND (a.VersionId = @VersionId OR (@VersionId IS NULL AND a.VersionId IS NULL)); 上面的WHERE检查@VersionId的非NULL值和NULL值. 在性能方面是否更[详细]
-
sql-server – 在为SQL Server数据库启用自动创建/更新统计信息
所属栏目:[MsSql教程] 日期:2020-12-31 热度:154
当AUTO_CREATE_STATISTICS和AUTO_UPDATE_STATISTICS选项为ON时,是否需要定期(例如每天)手动更新SQL Server数据库的统计信息? 解决方法 是的,您需要手动更新统计信息,尤其是在数据库变大时. auto_update统计逻辑仅在表从上次更新统计信息后增长20%后启动.在[详细]
-
sql-server – SQL Server:如何收缩FileStream文件?
所属栏目:[MsSql教程] 日期:2020-12-30 热度:80
对于一个项目,我使用的是SQL Server 2008 R2.一个表有一个文件流列. 我做了一些负载测试,现在数据库已经使用了~20GB. 我有空表,除了几个(配置表).但我的数据库仍然占用了大量空间.所以我使用了任务 – 收缩 – 数据库/文件但我的数据库仍然使用16GB的东西. 我[详细]
-
linq-to-sql – F#中的FirstOrDefault
所属栏目:[MsSql教程] 日期:2020-12-30 热度:138
如何在F#中编写FirstOrDefault Linq查询? 我可以完全使用linq到F#中的sql吗? 解决方法 请注意,在F#中使用更惯用的方法可能是使用Seq.tryFind中的某些内容而不是使用LINQ运算符,尽管它不是替代品,因为它返回一个选项值.[详细]
-
sql-server – 查找表有哪些更易读的命名约定?
所属栏目:[MsSql教程] 日期:2020-12-30 热度:133
我们总是将查找表命名为 – 例如国家,城市,地区……等 – 如下所示: EntityName_LK或LK_EntityName(Countries_LK或LK_Countries) 但我问是否有人有更好的命名转换查找表? 编辑: 我们认为使postfix或前缀像冲突一样解决: 如果我们有UserTypes的用户表和查[详细]
-
sql-server – 将备份还原到较旧版本的SQL Server
所属栏目:[MsSql教程] 日期:2020-12-30 热度:197
尝试将备份还原到SQL Server Express 2008数据库时,出现以下错误: Restore failed for Server '...SQLEXPRESS'. (Microsoft.SqlServer.SmoExtended)System.Data.SqlClient.SqlError: The database was backed up on a server running version10.50.1600. Th[详细]
-
sql-server – 估计在SQL Server上执行数据库缩减的时间的方法
所属栏目:[MsSql教程] 日期:2020-12-30 热度:83
有没有办法估计缩减对SQL Server数据库的缩短时间?是否有可用的工具可以提供一些猜测? 我们有非常大的数据库,因此最好知道数据库将无法使用多长时间(即使只是以小时为单位的近似估计). 提前致谢! 解决方法 很少建议缩小数据库,因为它会导致索引和磁盘碎片.[详细]
-
sql-server – EXISTS(SELECT 1 …)vs EXISTS(SELECT * …)一个
所属栏目:[MsSql教程] 日期:2020-12-30 热度:96
每当我需要检查表中某些行的存在时,我倾向于总是写一个像下面这样的条件: SELECT a,b,c FROM a_table WHERE EXISTS (SELECT * -- This is what I normally write FROM another_table WHERE another_table.b = a_table.b ) 其他一些人写道: SELECT a,c FROM[详细]
-
SQL Server – 缺少NATURAL JOIN / x JOIN y USING(字段)
所属栏目:[MsSql教程] 日期:2020-12-30 热度:200
我刚刚阅读了自然连接/使用 – SQL92的功能,这些功能(遗憾的是?)缺少SQL Server当前的保留节目. 有没有人来自支持SQL Server(或其他不支持的DBMS)的DBMS – 它们听起来有用,还是一堆蠕虫(听起来也可能!)? 解决方法 我从不使用NATURAL JOIN,因为我不喜欢连[详细]
-
sql-server – 你如何在本地加载dev数据库(服务器)?
所属栏目:[MsSql教程] 日期:2020-12-30 热度:109
哇,这个标题立即给了我“你问的问题似乎是主观的,可能会被关闭.” 无论如何,经过一番搜索和阅读,我决定问一下. 来自我的问题:What are the first issues to check while optimizing an existing database?,归结为必须强调加载作为备份.bak文件接收的本地SQL[详细]
-
sql-server – 由于’XTP_CHECKPOINT’,数据库’database_name’
所属栏目:[MsSql教程] 日期:2020-12-30 热度:125
我有一个关于XTP_CHECKPOINT的问题. 我正在使用SQL Server 2014.我有一个处于SIMPLE恢复模型模式的数据库.它也在被复制. 没有公开交易.我运行DBCC OPENTRAN并返回: “No active open transactions.” 但每当我尝试创建或删除表或删除数据时,我都会收到此消息[详细]
-
sql-server – 为什么LEN()函数严重低估了SQL Server 2014中的基
所属栏目:[MsSql教程] 日期:2020-12-30 热度:143
我有一个带有字符串列的表和一个检查具有一定长度的行的谓词.在SQL Server 2014中,无论我检查的长度如何,我都会看到1行的估计值.这产生了非常糟糕的计划,因为实际上有数千甚至数百万行,SQL Server正在选择将此表放在嵌套循环的外侧. 是否有SQL Server 2014的[详细]
-
sql-server-2008 – SQL Server删除 – 磁盘空间不足
所属栏目:[MsSql教程] 日期:2020-12-30 热度:81
我在SQL Server 2008中从表中删除了2.57亿行.我无法截断它.我可能会做得更聪明. 删除2小时后,日志文件增长,我的磁盘空间不足.查询仍在运行. 我该怎么办?删除会成功吗? 解决方法 等待tx回滚,删除将不会成功.或加载备份 – 可能更快. 以增量方式删除(每次10.0[详细]
-
sql-server-2008 – vCenter数据库选择
所属栏目:[MsSql教程] 日期:2020-12-30 热度:94
我正在构建新的vCenter 5服务器的规划过程中.目前,作为SMB,我的主机要求在使用SQL Express安装的范围内,但我的VM数量已经增长到较低的三位数.在我当前的vCenter中,我在加载库存时开始经历一些减速,所以我很好奇我是否选择安装了vCenter 4.1的SQL Express以及V[详细]
-
sql-server – Hash,Merge和Loop join之间的区别?
所属栏目:[MsSql教程] 日期:2020-12-30 热度:147
在SQL Server中,您可以指定连接提示: HASH JOIN MERGE JOIN LOOP JOIN 这三个连接提示的定义是什么,何时应该使用? 解决方法 从MSDN,在 Advanced Query Tuning Concepts的主题中: SQL Server employs three types of join operations: Nested loops joins M[详细]
-
SQL设置浮点精度
所属栏目:[MsSql教程] 日期:2020-12-30 热度:147
对于正在转换为float的SQL int,如何设置浮点数的精度? 这是我想截断到两个或三个小数位的选择: AVG(Cast(e.employee_level as Float))avg_level, 谢谢! 解决方法 在TSQL中,您可以为 float,24或53指定两种不同的大小.这将精度分别设置为7或15位. 如果你要做[详细]
-
sql-server-2005 – sql server 2005编码问题
所属栏目:[MsSql教程] 日期:2020-12-30 热度:197
我有一个utf-8编码的文本文件,有超过2k行的insert命令.现在我想将它作为sql脚本执行,以将数据插入数据库. 有希腊文本有问题.插入后只有?字符,没有希腊字母. 样本插入语句如下: INSERT INTO myDB.[MC_LIST] ([id],[data],[author],[created],[language],[typ[详细]
-
sql-server – 增量更新后统计信息消失
所属栏目:[MsSql教程] 日期:2020-12-26 热度:110
我们有一个使用增量统计信息的大型分区SQL Server数据库.所有索引都按分区对齐.当我们尝试通过分区在线重建分区时,所有统计信息在重建索引后都会消失. 下面是使用AdventureWorks2014数据库在SQL Server 2014中复制问题的脚本. --Example against AdventureWor[详细]
-
sql-server – 嵌套视图是一个很好的数据库设计吗?
所属栏目:[MsSql教程] 日期:2020-12-26 热度:154
我很久以前就读过某个地方.该书指出我们不应该允许在SQL Server中使用嵌套视图.我不确定为什么我们不能这样做或者我可能记得不正确的陈述. 学生们 SELECT studentID,first_name,last_name,SchoolID,... FROM studentsCREATE VIEW vw_eligible_studentAS SELEC[详细]
-
数据库设计 – 数据库设计:新表与新列
所属栏目:[MsSql教程] 日期:2020-12-26 热度:126
(这被建议从StackOverflow重新发布) 目前有一个表..并需要开始向其添加新的数据列. 并非每条记录(甚至在添加新数据列后继续使用新数据)都会有数据.所以我想知道这是否更适合新表,因为它实际上是某些数据行的扩展,并不适用于每一行. 换句话说,由于这些新数据元[详细]
-
sql-server – 使用LEFT JOIN或NOT EXISTS之间的最佳实践
所属栏目:[MsSql教程] 日期:2020-12-26 热度:189
使用LEFT JOIN或NOT EXISTS格式之间是否有最佳实践? 使用一个而不是另一个有什么好处? 如果没有,哪个应该是首选? SELECT *FROM tableA ALEFT JOIN tableB B ON A.idx = B.idxWHERE B.idx IS NULL SELECT *FROM tableA AWHERE NOT EXISTS(SELECT idx FROM t[详细]
-
sql-server – 如何为单个存储过程授予执行权限?
所属栏目:[MsSql教程] 日期:2020-12-26 热度:127
通常,当我创建存储过程时,我使用以下作为排序模板 Create procedure procedurename@param1 type,@param2 type,etc.. as begin procedureend 有没有办法在我使用时只包含授予执行权限的存储过程? 比如像…… Grant execute [User_Execute] …但仅适用于此存储[详细]
-
sql-server – 如何在SQL Server 2008中分配整个Active Director
所属栏目:[MsSql教程] 日期:2020-12-26 热度:90
我想在我的内部应用程序中使用集成安全性,这些应用程序都在域上.不幸的是,我从来没有能够让这个工作得很好.我想在SQL Server中为整个Exchange(Active Directory)组分配一个角色,以便对某些表进行读/写访问.这样,每当有人被雇用时我都不必创建一个操作符,或者[详细]
-
sql-server – 设置varchar(8000)有什么后果?
所属栏目:[MsSql教程] 日期:2020-12-26 热度:182
由于varchar占用的磁盘空间与字段的大小成正比,因此我们不应该总是将varchar定义为最大值,例如,SQL Server上的varchar(8000)? 在创建表上,如果我看到有人在做varchar(100)我应该告诉他们你不应该做varchar(8000)吗? 解决方法 长度是对数据的约束(如CHECK,FK[详细]
-
逻辑删除表与数据库同步和软删除方案中的已删除标志
所属栏目:[MsSql教程] 日期:2020-12-26 热度:89
我需要跟踪已删除的项目以满足客户端同步需求. 通常,最好是添加一个逻辑删除表和一个触发器来跟踪从服务器数据库中删除行的时间 – 基本上是使用已删除项目中的数据向逻辑删除表添加新行 – 或者将项目保留在原始表并将它们标记为已删除,通常使用类型为bit的[详细]
