You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/2014/database-engine/configure-windows/configure-windows-service-accounts-and-permissions.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -213,7 +213,7 @@ manager: craigg
213
213
214
214
- <aname="GMSA"></a> **Group Managed Service Accounts**
215
215
216
-
A Group Managed Service Account is an MSA for multiple servers. Windows manages a service account for services running on a group of servers. Active Directory automatically updates the group managed service account password without restarting services. You can configure SQL Server services to use a group managed service account principal.Beginning with SQL Server 2014, SQL Server supports group managed service accounts on Windows Server 2012 R2 and later for standalone instances, failover cluster instances, and availability groups.
216
+
A Group Managed Service Account is an MSA for multiple servers. Windows manages a service account for services running on a group of servers. Active Directory automatically updates the group managed service account password without restarting services. You can configure SQL Server services to use a group managed service account principal.Beginning with SQL Server 2014, SQL Server supports group managed service accounts for standalone instances.
217
217
218
218
To use a group managed service account for SQL Server 2014 or later, the operating system must be Windows Server 2012 R2 or later. Servers with Windows Server 2012 R2 require [KB 2998082](https://support.microsoft.com/kb/2998082) applied so that the services can log in without disruption immediately after a password change.
This topic discusses how you can create a connection to a [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)] database.
@@ -30,34 +32,40 @@ See [DSN and Connection String Keywords and Attributes](../dsn-connection-string
30
32
31
33
The value passed to the **Driver** keyword can be one of the following:
32
34
33
-
-The name you used when you installed the driver.
35
+
- The name you used when you installed the driver.
34
36
35
-
-The path to the driver library, which was specified in the template .ini file used to install the driver.
37
+
- The path to the driver library, which was specified in the template .ini file used to install the driver.
36
38
37
-
To create a DSN, create (if necessary) and edit the file **~/.odbc.ini** (`.odbc.ini` in your home directory) for a User DSN only accessible to the current user, or `/etc/odbc.ini` for a System DSN (administrative privileges required.) The following is a sample file that shows the minimal required entries for a DSN:
39
+
DSNs are optional. You can use a DSN to define connection string keywords under a `DSN` name that you can then reference in the connection string. To create a DSN, create (if necessary) and edit the file **~/.odbc.ini** (`.odbc.ini` in your home directory) for a User DSN only accessible to the current user, or `/etc/odbc.ini` for a System DSN (administrative privileges required.) The following is a sample file that shows the minimal required entries for a DSN:
38
40
39
-
```
41
+
```ini
42
+
# [DSN name]
40
43
[MSSQLTest]
41
-
Driver = ODBC Driver 13 for SQL Server
42
-
Server = [protocol:]server[,port]
43
-
#
44
+
Driver = ODBC Driver 17 for SQL Server
45
+
# Server = [protocol:]server[,port]
46
+
Server = tcp:localhost,1433
47
+
#
44
48
# Note:
45
49
# Port is not a valid keyword in the odbc.ini file
46
50
# for the Microsoft ODBC driver on Linux or macOS
47
51
#
48
52
```
49
53
54
+
To connect using the above DSN in a connection string, you would specify the `DSN` keyword like: `DSN=MSSQLTest;UID=my_username;PWD=my_password`
55
+
The above connection string would be the equivalent of specifying a connection string without the `DSN` keyword like: `Driver=ODBC Driver 17 for SQL Server;Server=tcp:localhost,1433;UID=my_username;PWD=my_password`
56
+
50
57
You can optionally specify the protocol and port to connect to the server. For example, **Server=tcp:**_servername_**,12345**. Note that the only protocol supported by the Linux and macOS drivers is `tcp`.
51
58
52
59
To connect to a named instance on a static port, use <b>Server=</b>*servername*,**port_number**. Connecting to a dynamic port is not supported before version 17.4.
53
60
54
61
Alternatively, you can add the DSN information to a template file, and execute the following command to add it to `~/.odbc.ini` :
55
62
-**odbcinst -i -s -f**_template_file_
56
-
63
+
57
64
You can verify that your driver is working by using `isql` to test the connection, or you can use this command:
58
65
-**bcp master.INFORMATION_SCHEMA.TABLES out OutFile.dat -S <server> -U <name> -P <password>**
59
66
60
67
## Using TLS/SSL
68
+
61
69
You can use Transport Layer Security (TLS), previously known as Secure Sockets Layer (SSL), to encrypt connections to [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)]. TLS protects [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)] user names and passwords over the network. TLS also verifies the identity of the server to protect against man-in-the-middle (MITM) attacks.
62
70
63
71
Enabling encryption increases security at the expense of performance.
@@ -73,7 +81,7 @@ Regardless of the settings for **Encrypt** and **TrustServerCertificate**, the s
73
81
74
82
By default, encrypted connections always verify the server's certificate. However, if you connect to a server that has a self-signed certificate, also add the `TrustServerCertificate` option to bypass checking the certificate against the list of trusted certificate authorities:
75
83
76
-
```
84
+
```
77
85
Driver={ODBC Driver 13 for SQL Server};Server=ServerNameHere;Encrypt=YES;TrustServerCertificate=YES
Copy file name to clipboardExpand all lines: docs/machine-learning/package-management/install-additional-r-packages-on-sql-server.md
+43-29Lines changed: 43 additions & 29 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ description: Learn how to use sqlmlutils to install new R packages to an instanc
4
4
ms.prod: sql
5
5
ms.technology: machine-learning
6
6
7
-
ms.date: 11/20/2019
7
+
ms.date: 05/11/2020
8
8
ms.topic: conceptual
9
9
author: garyericson
10
10
ms.author: garye
@@ -47,54 +47,59 @@ The **sqlmlutils** package depends on the **RODBCext** package, and **RODBCext**
47
47
48
48
If the client computer has Internet access, you can download and install **sqlmlutils** and its dependent packages online.
49
49
50
-
1. Download the latest **sqlmlutils** zip file from https://github.com/Microsoft/sqlmlutils/tree/master/R/dist to the client computer. Don't unzip the file.
50
+
1. Download the latest **sqlmlutils**file (`.zip` for Windows, `.tar.gz` for Linux) from https://github.com/Microsoft/sqlmlutils/tree/master/R/dist to the client computer. Don't expand the file.
51
51
52
-
1. Open a **Command Prompt** and run the following commands to install the packages **sqlmlutils** and **RODBCext**. Substitute the full path to the **sqlmlutils**zip file you downloaded (this example assumes the file is in your Documents folder). The **RODBCext** package is found online and installed.
52
+
1. Open a **Command Prompt** and run the following commands to install the packages **RODBCext** and **sqlmlutils**. Substitute the path to the **sqlmlutils** file you downloaded. The **RODBCext** package is found online and installed.
R -e "install.packages('RODBCext', repos='https://mran.microsoft.com/snapshot/2019-02-01/')"
64
+
R CMD INSTALL sqlmlutils_0.7.1.tar.gz
65
+
```
66
+
::: moniker-end
58
67
59
68
### Install sqlmlutils offline
60
69
61
-
If the client computer doesn't have an Internet connection, you need to download the packages **sqlmlutils** and **RODBCext** in advance using a computer that does have Internet access. You then can copy the files to a folder on the client computer and install the packages offline.
70
+
If the client computer doesn't have an Internet connection, you need to download the packages **RODBCext** and **sqlmlutils** in advance using a computer that does have Internet access. You then can copy the files to a folder on the client computer and install the packages offline.
62
71
63
72
The **RODBCext** package has a number of dependent packages, and identifying all dependencies for a package gets complicated. We recommend that you use [**miniCRAN**](https://andrie.github.io/miniCRAN/) to create a local repository folder for the package that includes all the dependent packages.
64
73
For more information, see [Create a local R package repository using miniCRAN](create-a-local-package-repository-using-minicran.md).
65
74
66
-
The **sqlmlutils** package consists of a single zip file that you can copy to the client computer and install.
75
+
The **sqlmlutils** package consists of a single file that you can copy to the client computer and install.
67
76
68
77
On a computer with Internet access:
69
78
70
79
1. Install **miniCRAN**. See [Install miniCRAN](create-a-local-package-repository-using-minicran.md#install-minicran) for details.
71
80
72
-
1. In RStudio, run the following R script to create a local repository of the package **RODBCext**. This example creates the repository in the folder `c:\downloads\rodbcext`.
1. In RStudio, run the following R script to create a local repository of the package **RODBCext**. This example assumes the repository will be created in the folder `rodbcext`.
For the `Rversion` value, use the version of R installed on SQL Server. To verify the installed version, use the following T-SQL command.
@@ -104,16 +109,29 @@ On a computer with Internet access:
104
109
, @script = N'print(R.version)'
105
110
```
106
111
107
-
1. Download the latest **sqlmlutils** zip file from [https://github.com/Microsoft/sqlmlutils/tree/master/R/dist](https://github.com/Microsoft/sqlmlutils/tree/master/R/dist) (don't unzip the file). For example, download the file to `c:\downloads\sqlmlutils_0.7.1.zip`.
112
+
1. Download the latest **sqlmlutils**file (`.zip` for Windows, `.tar.gz` for Linux) from [https://github.com/Microsoft/sqlmlutils/tree/master/R/dist](https://github.com/Microsoft/sqlmlutils/tree/master/R/dist). Don't expand the file.
108
113
109
-
1. Copy the entire **RODBCext** repository folder (`c:\downloads\rodbcext`) and the **sqlmlutils**zip file (`c:\downloads\sqlmlutils_0.7.1.zip`) to the client computer. For example, copy them to the folder `c:\temp\packages` on the client computer.
114
+
1. Copy the entire **RODBCext** repository folder and the **sqlmlutils** file to the client computer.
110
115
111
-
On the client computer you use to connect to SQL Server, open a command prompt and run the following commands to install **RODBCext** and then **sqlmlutils**.
116
+
On the client computer you use to connect to SQL Server:
112
117
113
-
```console
114
-
R -e "install.packages('RODBCext', repos='c:\temp\packages\rodbcext')"
115
-
R CMD INSTALL c:\temp\packages\sqlmlutils_0.7.1.zip
116
-
```
118
+
1. Open a command prompt.
119
+
120
+
1. Run the following commands to install **RODBCext** and then **sqlmlutils**. Substitute the full paths to the **RODBCext** repository folder and the **sqlmlutils** file you copied to this computer.
@@ -49,6 +49,14 @@ A rowgroup is a group of rows that are compressed into columnstore format at the
49
49
50
50
For high performance and high compression rates, the columnstore index slices the table into rowgroups, and then compresses each rowgroup in a column-wise manner. The number of rows in the rowgroup must be large enough to improve compression rates, and small enough to benefit from in-memory operations.
51
51
52
+
A rowgroup from where all data has been deleted transitions from COMPRESSED into TOMBSTONE state, and is later removed by a background process named the tuple-mover.
53
+
54
+
> [!TIP]
55
+
> Having too many small rowgroups decreases the columnstore index quality. A reorganize operation will merge smaller rowgroups, following an internal threshold policy that determines how to remove deleted rows and combine the compressed rowgroups. After a merge, the index quality should be improved.
56
+
57
+
> [!NOTE]
58
+
> Starting with [!INCLUDE[sql-server-2019](../../includes/sssqlv15-md.md)], the tuple-mover is helped by a background merge task that automatically compresses smaller OPEN delta rowgroups that have existed for some time as determined by an internal threshold, or merges COMPRESSED rowgroups from where a large number of rows has been deleted. This improves the columnstore index quality over time.
59
+
52
60
#### Column segment
53
61
A column segment is a column of data from within the rowgroup.
54
62
@@ -65,9 +73,16 @@ A clustered columnstore index is the physical storage for the entire table.
65
73
To reduce fragmentation of the column segments and improve performance, the columnstore index might store some data temporarily into a clustered index called a *deltastore* and a btree list of IDs for deleted rows. The deltastore operations are handled behind the scenes. To return the correct query results, the clustered columnstore index combines query results from both the columnstore and the deltastore.
66
74
67
75
#### Delta rowgroup
68
-
A delta rowgroup is a clustered index that's used only with columnstore indexes. It improves columnstore compression and performance by storing rows until the number of rows reaches a threshold and are then moved into the columnstore.
76
+
A delta rowgroup is a clustered B-tree index that's used only with columnstore indexes. It improves columnstore compression and performance by storing rows until the number of rows reaches a threshold (1,048,576 rows) and are then moved into the columnstore.
77
+
78
+
When a delta rowgroup reaches the maximum number of rows, it transitions from an OPEN to CLOSED state. A background process named the tuple-mover checks for closed row groups. If the process finds a closed rowgroup, it compresses the delta rowgroup and stores it into the columnstore as a COMPRESSED rowgroup.
79
+
80
+
When a delta rowgroup has been compressed, the existing delta rowgroup transitions into TOMBSTONE state to be removed later by the tuple-mover when there is no reference to it.
81
+
82
+
For more information about rowgroup statuses, see [sys.dm_db_column_store_row_group_physical_stats (Transact-SQL)](../../relational-databases/system-dynamic-management-views/sys-dm-db-column-store-row-group-physical-stats-transact-sql.md).
69
83
70
-
When a delta rowgroup reaches the maximum number of rows, it becomes closed. A tuple-mover process checks for closed row groups. If the process finds a closed rowgroup, it compresses the rowgroup and stores it into the columnstore.
84
+
> [!NOTE]
85
+
> Starting with [!INCLUDE[sql-server-2019](../../includes/sssqlv15-md.md)], the tuple-mover is helped by a background merge task that automatically compresses smaller OPEN delta rowgroups that have existed for some time as determined by an internal threshold, or merges COMPRESSED rowgroups from where a large number of rows has been deleted. This improves the columnstore index quality over time.
71
86
72
87
#### Deltastore
73
88
A columnstore index can have more than one delta rowgroup. All of the delta rowgroups are collectively called the deltastore.
0 commit comments