`

处理sql server数据的经过,又学了一点点!

阅读更多
问题描述如下:
      首先数据库在187上,当前跑的数据库是album,另一个备份数据库是album_back,这个是我防止处理数据出错而把最初整理好的18万条数据放在了里面的cn_crazyasp_album_image_TImage表中,另外2张表一个是preview一个是TAlbum都是空白表.
      说说处理过程,18万条数据分为2类,一类是活动照片记录,类型标记(ownerType)为activity;一类是个人照片记录,类型标记(ownerType)为user.这18万条数据目前不输入任何相册,其albumId都为null(当然在album 库中已有50000条albumId > 0了);
      现在需要的过程是:遍历每条数据,根据这条数据的ownerType和ownerId去建立相册,即给每个活动建立一个默认的相册,放其相关的照片;对每个用户也建立一个默认的相片,存放其原来发的相片;建立好相册,把相册的id,放在这条记录的albumId中来;同时根据此记录中的图片地址url,去生成四张缩略图,同时往preview表里写入四条记录。
      按照我最初的想法,就是写一个方法,配置为webwok的action或spring的定时任务来跑。方法很好写,但问题是处理起来要费好多时间!最后还是我们大哥提议用sql脚本写,直接在查询分析器里执行,当然这样先不考虑缩略图了。大体的sql 语句如下:

/*
select count(*) from cn_crazyasp_album_image_preview_TPreview --401786
select count(*) from cn_crazyasp_album_image_TImage --182030
select count(*) from cn_crazyasp_album_TAlbum --2124
*/
--复制图片对象表,包括数据和表结构
--select * into TImage from cn_crazyasp_album_image_TImage
--14秒

--select top 100 * from TImage
--select top 1 * from cn_crazyasp_album_TAlbum where ownertype='user'

--用户图片总数
--select count(*) from TImage where ownertype='user' --100012

--为所有活动和用户创建对应的相册
---INSERT INTO TAlbum (ownerType,ownerId,authorId) select ownerType,ownerId,authorId from TImage group by ownerType,ownerId,authorId
--23137行记录

--更新图片对象所属的相册的编号
/*
update TImage set TImage.albumId=(select a.id from TAlbum as a
where a.ownerType=TImage.ownerType and a.ownerId=TImage.ownerId and a.authorId=TImage.authorId)
*/



1.-----------------------------------------------
insert into cn_crazyasp_album_image_preview_TPreview(ownerId,url) select a.id,a.url from cn_crazyasp_album_image_TImage as a

2.把url颠倒次序

UPDATE cn_crazyasp_album_image_preview_TPreview
SET url = REVERSE(url)

3.把扩展名都去掉

UPDATE cn_crazyasp_album_image_preview_TPreview
SET url = REPLACE(url, LEFT(url, 4), '')

4.再把url颠倒过来

UPDATE cn_crazyasp_album_image_preview_TPreview
SET url = REVERSE(url)

5.把以下语句执行3次

INSERT INTO cn_crazyasp_album_image_preview_TPreview
      (ownerId, url)
SELECT ownerId, url
FROM cn_crazyasp_album_image_preview_TPreview a
WHERE (id < 182018)
6.
UPDATE cn_crazyasp_album_image_preview_TPreview
SET height = 500, width = 500, type = 'big', nsize = 0
WHERE (id > 546051) AND (id < 728069)
7.为相册建立封面的sql语句
UPDATE cn_crazyasp_album_TAlbum
SET image =
          (SELECT TOP 1 CONVERT(varchar(30), YEAR(m.inTime), 101)
               + '-' + CONVERT(varchar(30), MONTH(m.inTime), 101) + '/' + m.url
         FROM cn_crazyasp_album_image_TImage AS m
         WHERE m.authorId = cn_crazyasp_album_TAlbum.authorId AND
               m.ownerId = cn_crazyasp_album_TAlbum.ownerId
         ORDER BY id DESC)
WHERE (id < 23138)
分享到:
评论

相关推荐

    剑儿SQL Server内存释放器 V3.3

    由于Sql Server对于系统内存的管理策略是有多少占多少,除非系统内存不够用了(大约到剩余内存为4M左右),Sql Server才会释放一点点内存。所以很多时候,我们会发现运行Sql Server的系统内存往往居高不下。这些内存...

    SQL Server内存释放器 v3.3

    由于Sql Server对于系统内存的管理策略是有多少占多少,除非系统内存不够用了(大约到剩余内存为4M左右),Sql Server才会释放一点点内存。所以很多时候,我们会发现运行Sql Server的系统内存往往居高不下。这些内存...

    剑儿SQL Server内存释放器 v3.3.zip

    由于Sql Server对于系统内存的管理策略是有多少占多少,除非系统内存不够用了(大约到剩余内存为4M左右),Sql Server才会释放一点点内存。所以很多时候,我们会发现运行Sql Server的系统内存往往居高不下。这些内存...

    剑儿SQL Server内存释放器1.0

    由于Sql Server对于系统内存的管理策略是有多少占多少,除非系统内存不够用了(大约到剩余内存为4M左右),Sql Server才会释放一点点内存。所以很多时候,我们会发现运行Sql Server的系统内存往往居高不下。这些内存...

    数据库课程设计(sqlserver)--餐厅点餐系统

    餐厅点菜是餐厅日常工作中非常重要的一项,关系到餐厅日常工作效率。传统的点菜方式工作量大、耗时长且易出问题。一项好的餐厅点菜系统可以顺利解决这些问题,并且可以满足许多大型餐厅的需求,从而使工作效率提高且...

    SQL Azure中文教程

    Microsoft SQL Azure Database提供了一种在云中存储数据并从各种应用访问数据的新方法。熟悉SQL Server的开发人员和DBA通过将他们已有的知识与Azure开发和管理的新功能相结合,应该可以迅速地掌握它的使用方法。在...

    GBABOOK BBS v1.2 for SQL Server.rar

    金钱系统、道具、恶搞,在聊天讨论之余还有一点点小趣味。 新增功能: 1. 新增帖子内容页面显示用户头像功能,并且管理员和用户可以根据自己的喜好设置浏览模式(简洁版或头像显示版)。 2. 新增WAP浏览功能,手机...

    毕业设计:asp+SQLServer网上书店系统设计(源代码)

    2.大批流并行数据访问操作,为保证数据库的完整性,所以运用事务处理方式对并行数据进行处理。 4.销售书籍后马上更新库存,及时的书籍报警,能马上知道书籍的缺货,溢出状态。 5.即时更新采购产品报表,使得你的采购...

    ASP与数据库 详细教程

    但一般来说,一个真正的、完整的站点是离不开数据库的,因为少量的数据,如网页访问人数等完全可以存储在文本文件中,但实际应用中,需要保存的数据远不止这一点点,而且这些数据之间往往还有关联,利用数据库来管理...

    GBABOOK BBS v1.2 for Access.rar

    负载能力强,优秀的数据库设计,每一个索引都经过了认真的规划,SQL Server版在千万级别的数据量下,速度仍然飞快。 金钱系统、道具、恶搞,在聊天讨论之余还有一点点小趣味。 1.1版加入了快速方便的附件上传、金钱...

    基于(asp.net+C#+sqlserver)兴趣社交网络平台(源码+文档+数据库).rar

    简单的来说,社交网站就是给你一个展示自己的平台,可以和别人分享自己的想法和观念,以精简的话语记录生活的点点滴滴。社交网站是个很大的信息平台。可以获取大量的信息。还可以与人交流。 本文以实际运用为开发...

    音乐数据获取者v3.1+ 完美版

    当然,Sqlserver效率高,如果你有Sqlserver支持,可以很轻松进行转换。 2.程序功能: 本程序具有三种功能: 1)与普通的小偷相同的功能,可以实时获取Sogua的数据。 2)加强功能:当网友点击“试听”...

    asp.net知识库

    在Framework1.0下同时连接SqlServer和Oracle的一些体会 XML XPath XPath最通俗的教程(ZZ) XPath中相对路径和绝对路径 XPath 简单语法 Asp.Net(C#)利用XPath解析XML文档示例 XSL .Net框架下的XSLT转换技术简介 一个...

    将ACCESS转化成SQL2000要注意的问题

    很多朋友想用SQL2000数据库的编程方法,但是却又苦于自己是学ACCESS的,对SQL只是一点点的了解而已,这里我给大家提供以下参考—将ACCESS转化成SQL2000的方法和注意事项  一,首先,我说的是在ACCESS2000,SQL2000...

    数据库的学习与进阶(一)

    (1)商业起步阶段,结构化的数据RDBMS以SQL+OLTP联机事务处理,代表数据库有Oracle、DB2、sybase、SQLServer; (2)开源阶段,代表数据库有Postgres、MySQL; (3)分析阶段,海量数据以ETL+OLAP联机分析处理为主...

    reddit-dhtk-ps:Reddit数据收集工具包

    下载Reddit链接和注释数据的PowerShell模块,将它们存储在SQL Server中以供以后查看和分析。 无需登录帐户。 先决条件 SQL服务器 这主要是为了在本地运行SQL Server实例上运行。 我已经使用LocalDB(Visual Studio...

    解决MSSQL2005远程连接sql2000非默认端口数据库的问题

    SQL2005没有像SQL2000一样的客户端网络实用工具,基本上SQL2005算是把SQL2000里面的名字都改了,在网上找资料也没找到,只能一点点的试,终于发现了一个别名,欣喜的给我希望的“别名”。  具体位置是: 开始—–...

    点点餐饮网上订餐网站源码

    2、开发环境为Visual Studio 2008,数据库为SQL Server 2005,数据库文件在diandian.DB文件夹中。 3、数据库连接字符串在webconfig配置文件中修改。 六、郑重声明 1、本程序主要用于学习交流之用,请在合法范围...

    毕业设计:ASP《计算机专业英语》网上教学系统设计与实现(源代码)

    其次,综合运用以前所学的相关知识(包括计算机网络技术、ASP与网络数据库相关知识等),选择SQL Server数据库,在ASP环境下运用VBSCRIPT及JAVASCRIPT脚本语言进行本毕业设计的开发;在设计中以需求分析为基础

Global site tag (gtag.js) - Google Analytics