❶ sql导出EXCEL分表(asp)
不用这么麻烦.直接使用bcp导出吧.
bcp 数据库名.dbo.表名 out 文件路径 -c -S服务器名 -U用户名 -P密码
例
exec master..xp_cmdshell 'bcp TEMPDB.dbo.TABLE1 out c:\a.xls -c -Slocalhost -Usa -P123'
❷ sqlserver数据库很大,建立分表能否提升查询速度
如果有时间字段,建议做分区表,按时间分区,这样表从物理上是分开的,但是对外还是一张表.
好处有1.原本的代码结构不用变2.查询历史数据的时候,速度仍然有保障3.如果建立触发器进行自动分区,理论上不管再用多少年,都不会再需要重新建表a2了
❸ sqlserver 分库分表怎么操作
sql server 分库分表方案&单表分区 教程
http://blog.csdn.net/chenhisen/article/details/50747582
❹ sql 大量数据分表查询
可以,这个就像你分页的时候,当一个表的数据量太大, 你就不可能一次性全查出来,得规定查出多少条,然后下一页的时候再是后面多少条,具体实现就自己写了。我这里给你个分页的SQL,oracle的分页。
SELECT * FROM (
SELECT a.*, ROWNUM rm FROM(
SELECT * FROM tableName
) a WHERE ROWNUM <=10
) WHERE rm>5
这里是查出6~10条数据,你可以按这个思路去做做。
❺ 数据库一个表数据太多了,如何分表
这个要看你是什么数据库。
Oracle 或者 SQL Server 企业版本的, 可以尝试使用 分区表来处理。
如果对 分区表不熟悉, 或者不高兴折腾。
SQL Server 可以尝试使用 分区视图的方式来处理。
❻ sqlserver怎么分库分表
sql server 2008数据库分离操作跟sql server 2005是一样的,以下具体介绍如何分离sql server 数据库:
1、打开 sql server 控制台(SQL Server Management Studio),然后登录。
2、登录时如果知道sa密码可以使用“SQL Server身份验证”模式登录,如果不知道sa密码可以使用“windows身份验证”模式登录就不需要密码登录。而sql server 2008的用户一般是在安装的时候自定义的用户,但也可以使用“windows身份验证”模式登录。
3、登录到控制到中之后,找到【数据库】点击展开,然后找到你所需要分离的数据库名称。选中数据库【右键】-【任务】-【分离】即可。
附件说明:分离数据库一般是需要将数据库拷贝到其他机器或者是移动磁盘时和不需要使用该数据库的情况下才做数据库分离。数据库一旦分离之后所对应的软件将无法正常使用和打开数据库。如果需要重新将数据库还原到数据库控制台中,选中【数据库】-【右键】-【附加】,找到你所要附件的数据所在的磁盘路径,选择以“.MDF”为后缀的文件即可。
❼ sql根据id自动分表存储
我感觉你这个需求使用分区表来实现会更好一些
但如果你要使用你的方法也是可以的
create table x_a(id int,name varchar(200));
go
create procere changetablename
@oldtable as nvarchar(200),
@newtable as nvarchar(200)
as
declare @sqlstr varchar(2000),@cretri varchar(8000)
begin
exec sp_rename @oldtable,@newtable
set @sqlstr='create table '+@oldtable+'(id int,name varchar(200))'
exec(@sqlstr)
drop trigger t_x_a_id;
set @cretri='create trigger t_x_a_id
on x_a
for insert
as
declare @idnum int,@tbid int,@sqlstr varchar(200),@tbn varchar(200);
select @idnum=id%10,@tbid=round(id/10,0) from inserted;
set @sqlstr='+'''x_a'''+'+cast(@tbid as varchar(20));
set @tbn='+'''x_a'''+';
if @idnum=0
begin
exec dbo.changetablename @tbn,@sqlstr;
end'
exec(@cretri)
end
go
create trigger t_x_a_id
on x_a
for insert
as
declare @idnum int,@tbid int,@sqlstr varchar(200),@tbn varchar(200);
select @idnum=id%10,@tbid=round(id/10,0) from inserted;
set @sqlstr='x_a'+cast(@tbid as varchar(20));
set @tbn='x_a';
if @idnum=0
begin
exec dbo.changetablename @tbn,@sqlstr;
end
go
❽ sqlserver数据库怎么分表
分三个表就可以了,用三级id关联
❾ MySQL 分表的 SQL 语句如何生成比较好
需要对 MySQL 数据库表进行分表,看如下建表 SQL:
CREATE TABLE `gift_user_log_1` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`giftid` int(11) NOT NULL,
`userid` int(11) NOT NULL,
`total` int(11) NOT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
如果需要建 50 张这样的表,岂不是复制粘贴 50 次,然后手动修改表名的序号,显然不可行,但是 PHP 框架本身没有提供数据库这方面的工具。