Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 基于列的SQL表中的数据操作_Sql Server_Database - Fatal编程技术网

Sql server 基于列的SQL表中的数据操作

Sql server 基于列的SQL表中的数据操作,sql-server,database,Sql Server,Database,我需要一个快速可靠的解决方案来处理基于列的数据库中的数据。数据库将为每个变量存储100万个值的模拟数据,因此一个表(或多个表)将始终包含100万行 我需要一个解决方案,该解决方案将允许真正快速: 将100万个值保存到表(或列)中,例如Var1、Var2等 使用100万个新值更新表(现有的100万个值替换为新值) 计算列,例如Var1+Var2或Var1*(1+Var2)等 我尝试过MS SQL之类的方法: SELECT * INTO <VarTable> FROM <CLR T

我需要一个快速可靠的解决方案来处理基于列的数据库中的数据。数据库将为每个变量存储100万个值的模拟数据,因此一个表(或多个表)将始终包含100万行

我需要一个解决方案,该解决方案将允许真正快速:

  • 将100万个值保存到表(或列)中,例如Var1、Var2等
  • 使用100万个新值更新表(现有的100万个值替换为新值)
  • 计算列,例如Var1+Var2或Var1*(1+Var2)等
  • 我尝试过MS SQL之类的方法:

    SELECT * INTO <VarTable> FROM <CLR Table-Valued Function>
    
    SELECT*INTO-FROM
    
    然后

    UPDATE <VarTable> SET <Var1> = <NewVar> FROM <TempTable> WHERE VarTable.ID = TempTable.ID
    
    updateset=从其中VarTable.ID=tentable.ID
    
    但是上面的工作非常缓慢,因为每列中有一百万行。
    我需要一种解决方案,允许快速替换整列,并在列(或表,如果列位于不同的表中)之间快速进行简单的数学运算,同时假设所有列的行数始终相同(100万)。

    如果我读对了这一点,它似乎不适合SQL Server,对于必须快速更改的大量通用数据,您是否考虑过其他技术?这必须通过SQL Server来实现吗?SQL Server只是我想尝试的第一个选项,因为它很受欢迎。鉴于数据存储需要允许多个同时连接,我愿意接受任何允许上述操作的建议。您需要多少弹性?更改速度问题的一部分是SQL Server使用预写日志记录并将工作提交到磁盘,以保护其免受任何和所有故障(硬件/操作系统崩溃等)的影响。例如,所有的东西都只是在内存中?例如,当我考虑在这样的问题中把速度放在首位时,我想要的是内存中的对象之间的直接指针,而不是RDBMS所做的,即使用索引(例如btrees)搜索并尝试用稳定的媒体保护所有东西。也就是说,您可能希望查看内存中的SQL Server OLTP,看看它是否适合—它主要是关于加速小范围事务,而不是一次更改1 mil行。如果我没有看错的话,它似乎不适合SQL Server,因为一般的大量数据必须快速更改—您考虑过其他技术吗?这必须通过SQL Server来实现吗?SQL Server只是我想尝试的第一个选项,因为它很受欢迎。鉴于数据存储需要允许多个同时连接,我愿意接受任何允许上述操作的建议。您需要多少弹性?更改速度问题的一部分是SQL Server使用预写日志记录并将工作提交到磁盘,以保护其免受任何和所有故障(硬件/操作系统崩溃等)的影响。例如,所有的东西都只是在内存中?例如,当我考虑在这样的问题中把速度放在首位时,我想要的是内存中的对象之间的直接指针,而不是RDBMS所做的,即使用索引(例如btrees)搜索并尝试用稳定的媒体保护所有东西。也就是说,您可能希望查看内存中的SQL Server OLTP,看看它是否适合—它主要是关于加速小范围事务,而不是一次更改1 mil行。