在SQL Server中加载Python库的速度很慢

2024-05-14 19:01:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Python进行SQL Server中不可用的计算

在Jupyter笔记本电脑中,计算速度非常快(使用csv作为源),但在SQL Server中,一次计算需要3秒钟。由于我有成千上万的计算,这是非常缓慢的

下面是我输入数据的存储过程的代码,这是一个波长和插值数据表

ALTER PROCEDURE [dbo].[sp_PolynomeSecondDegree] 
    @ToBeProcessed PolynomeRegressionSource READONLY
AS
BEGIN
    SET NOCOUNT ON;

    IF OBJECT_ID('tempdb..##DataStart') IS NOT NULL 
        DROP TABLE ##DataStart

    SELECT * 
    INTO ##DataStart 
    FROM @ToBeProcessed 

    EXECUTE sp_execute_external_script 
                @language = N'Python',
                @script=N'

import pandas as pd
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression

X = InputDataSet[["WaveLength"]]
y = InputDataSet.InterPol
pre_process = PolynomialFeatures(degree = 2)
X_poly = pre_process.fit_transform(X)
pr_model = LinearRegression()
pr_model.fit(X_poly, y)
theta0 = pr_model.intercept_
_, theta1, theta2 = pr_model.coef_

OutputDataSet = pd.DataFrame({''a'':[theta0], ''b'':[theta1], ''c'':[theta2]} )
',
    @input_data_1 = N'SELECT * from ##DataStart'
    WITH RESULT SETS (( a float, b float, c float))

END

经过一些消除之后,我注意到,如果它是一个没有导入sklearn的“普通”脚本,那么速度很快,但是一旦添加了导入,就需要很长时间

有没有一种方法可以永久加载这些库,或者在我开始这些计算之前加载这些库,以使其更快

或者这段代码毫无意义,是否有更好(更快)的方法来处理

提前感谢,

泽格


Tags: 代码fromimportsqlmodelserverscriptpr

热门问题