随笔分类 -  数据库

上一页 1 2 3 4 5 6 7 8 9 ··· 14 下一页
摘要:从A表随机取2条记录,用SELECT TOP 10 * FROM ywle order by newid()order by 一般是根据某一字段排序,newid()的返回值 是uniqueidentifier ,order by newid()随机选取记录是如何进行的newid()在扫描每条记录的时候都生成一个值, 而生成的值是随机的, 没有大小写顺序. 所以最终结果再按这个排序, 排序的结果当然就是无序的了或者select top 10 *,newid() as Random from ywle where ywlename='001' ordey by Random 下者效 阅读全文
posted @ 2013-03-14 15:25 Nina 阅读(288) 评论(0) 推荐(0)
摘要:select top 1 * from AdminEmployee order by newid()我之前做过一个利用sqlserver的,字段 姓名 中奖状态 几等奖什么的。算法就是利用sqlserver里面的newid随机查询,就是一个sql语句了。譬如三等奖,三人中,order by newid 取top 3 然后更改中奖状态踢出去,最后总会出来。大公司几千人而已,不用考虑newid效率的事情。比较实用。其他数据库的话也不过是个随机查出几条数据的问题。希望能够给你一些启发。 阅读全文
posted @ 2013-03-14 11:15 Nina 阅读(243) 评论(0) 推荐(0)
摘要:在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题。下面介绍SQL Server支持的两种批量数据插入方法:Bulk和表值参数(Table-Valued Parameters)。运行下面的脚本,建立测试数据库和表值参数。[c-sharp] view plaincopyprint?--CreateDataBasecreatedatabaseBulkTestDB;gouseBulkTestDB;go--CreateTableCreatetableBulkTestTable(Idintprima 阅读全文
posted @ 2013-03-13 08:52 Nina 阅读(420) 评论(0) 推荐(0)
摘要:a recent post, I demonstrated how the sys.procedures catalog view could be used to determine the date and time that a stored procedure was last modified in SQL Server 2005. A similar technique can be used to determine the last time a user table was altered. The following query illustrates this techn 阅读全文
posted @ 2013-03-05 11:54 Nina 阅读(157) 评论(0) 推荐(0)
摘要:如果你正在负责一个基于SQL Server的项目,或者你刚刚接触SQL Server,你都有可能要面临一些数据库性能的问题,这篇文章会为你提供一些有用的指导(其中大多数也可以用于其它的DBMS)。 在这里,我不打算介绍使用SQL Server的窍门,也不能提供一个包治百病的方案,我所做的是总结一些经验----关于如何形成一个好的设计。这些经验来自我过去几年中经受的教训,一直来,我看到许多同样的设计错误被一次又一次的重复。 一、了解你用的工具 不要轻视这一点,这是我在这篇文章中讲述的最关键的一条。也许你也看到有很多的SQL Server程序员没有掌握全部的T-SQL命令和SQL Server提供 阅读全文
posted @ 2013-03-05 10:29 Nina 阅读(226) 评论(0) 推荐(0)
摘要:整理SQL索引碎片提速2007年07月15日 星期日 下午 03:20检查索引碎片DBCC SHOWCONTIG(表)逻辑扫描碎片和扩展盘区扫描碎片都非常大,需要对索引碎片进行处理一般有两种方法解决,一是利用DBCC INDEXDEFRAG整理索引碎片,二是利用DBCC DBREINDEX重建索引。二者各有优缺点。调用微软的原话如下:DBCC INDEXDEFRAG 命令是联机操作,所以索引只有在该命令正在运行时才可用。而且可以在不丢失已完成工作的情况下中断该操作。这种方法的缺点是在重新组织数据方面没有聚集索引的除去/重新创建操作有效。重新创建聚集索引将对数据进行重新组织,其结果是使数据页填满 阅读全文
posted @ 2013-03-05 10:18 Nina 阅读(350) 评论(0) 推荐(0)
摘要:MS SQL Server 2008 在建完表后,如果要插入任意列,则提示:当用户在在SQL Server 2008企业管理器中更改表结构时,必须要先删除原来的表,然后重新创建新表,才能完成表的更改,如果强行更改会出现以下提示:不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的标进行了更改或者启用了“阻止保存要求重新创建表的更改”选项。如果要去掉此提示,打开SQL 2008 在最上面工具-〉选项-〉左侧有个 设计器(Designers)-〉表设计器和数据库设计器 -> 阻止保存要求重新创建表的更改(右侧) 把钩去重新启动2008即可 阅读全文
posted @ 2013-03-05 10:11 Nina 阅读(225) 评论(0) 推荐(0)
摘要:SQL Server 2005:索引碎片整理脚本。 首先说明:该 SQL 索引碎片整理脚本,是从 SQL Server 2005 联机帮助上摘录下来,并且稍加整理而成的。 该 SQL 索引碎片整理脚本,首先从 SQL Server 2005 系统管理视图 sys.dm_db_index_physical_stats 中,找出索引碎片程度大于 10% 的索引,然后根据索引碎片程度,分别来采取不同的方法来整理索引碎片。小于 30% 的使用 alter index reorganize;大于等于 30% 的使用 alter index rebuild。其中 reorganize 相当于 dbcc i 阅读全文
posted @ 2013-03-05 09:52 Nina 阅读(405) 评论(0) 推荐(0)
摘要:查询数据库中所有表的索引密度和碎片信息,以便为索引的重建和整理提供依据,也可以参考DBCC SHOWCONTIG,通常FRAGMENTATIOIN在30%以上建议重建,否则建议整理SELECT i.name AS indexname, o.name AS tablename, s.name AS schemaname, f.index_type_desc AS indextype, f.avg_page_space_used_in_percent AS indexdensity, f.avg_fragmentation_in_percent AS indexfragmentation, f.p 阅读全文
posted @ 2013-03-05 09:36 Nina 阅读(144) 评论(0) 推荐(0)
摘要:DECLARE @docHandle int;DECLARE @xmlDocument nvarchar(max); -- or xml typeSET @xmlDocument = N'<ROOT><Customers CustomerID="XYZAA" ContactName="Joe" CompanyName="Company1"><Orders CustomerID="XYZAA" OrderDate="2000-08-25T00:00:00"/& 阅读全文
posted @ 2013-03-01 11:44 Nina 阅读(300) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 8 9 ··· 14 下一页