IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Initial impressions of SQL Server v.Next Public Preview

    Haidong Ji发表于 2016-11-18 03:42:46
    love 0

    Microsoft announced its SQL Server on Linux public preview yesterday. I’m really excited to check it out. Here are some interesting things I found during my testing. I’ll write more as I play with it further.

    • If you want to play it on Ubuntu, it needs to be 16.04 or above. I didn’t pay attention to that initially, and started installing on Ubuntu 14. Below is a typical message you would get:

      [code language=”text”]
      The following packages have unmet dependencies:
      mssql-server : Depends: openssl (>= 1.0.2) but 1.0.1f-1ubuntu2.21 is to be installed
      E: Unable to correct problems, you have held broken packages.
      [/code]

      Running sudo apt-get dist-upgrade brought my Ubuntu to 16.04. The install was smooth afterwards.

    • Instruction for Red Hat Enterprise Linux also works for Fedora. I tested it on Fedora 23. I think it should also work on CentOS, although I didn’t test it myself.
    • The machine needs to have at least 3.25 GB of memory. On Ubuntu, install won’t continue if that condition is not satisfied:
      [code language=”text”]
      Preparing to unpack …/mssql-server_14.0.1.246-6_amd64.deb …
      ERROR: This machine must have at least 3.25 gigabytes of memory to install Microsoft(R) SQL Server(R).
      dpkg: error processing archive /var/cache/apt/archives/mssql-server_14.0.1.246-6_amd64.deb (–unpack):
      subprocess new pre-installation script returned error exit status 1
      Processing triggers for libc-bin (2.21-0ubuntu4.3) …
      Errors were encountered while processing:
      /var/cache/apt/archives/mssql-server_14.0.1.246-6_amd64.deb
      E: Sub-process /usr/bin/dpkg returned an error code (1)
      [/code]
      On Fedora, installation finishes, but you won’t be able to start the service:
      [code language=”text”]
      [hji@localhost ~]$ sudo /opt/mssql/bin/sqlservr-setup
      Microsoft(R) SQL Server(R) Setup

      You can abort setup at anytime by pressing Ctrl-C. Start this program
      with the –help option for information about running it in unattended
      mode.

      The license terms for this product can be downloaded from
      http://go.microsoft.com/fwlink/?LinkId=746388 and found
      in /usr/share/doc/mssql-server/LICENSE.TXT.

      Do you accept the license terms? If so, please type “YES”: YES

      Please enter a password for the system administrator (SA) account:
      Please confirm the password for the system administrator (SA) account:

      Setting system administrator (SA) account password…
      sqlservr: This program requires a machine with at least 3250 megabytes of memory.
      Microsoft(R) SQL Server(R) setup failed with error code 1.
      Please check the setup log in /var/opt/mssql/log/setup-20161117-122619.log
      for more information.
      [/code]

    • Some simple testing 🙂 From the output below, we learn that: 1)in sys.sysfiles, full file name is presented like “C:\var\opt\mssql\data\TestDb.mdf”; 2) Database name, at least inside sqlcmd, is not case-sensitive. By the way, login is also case-insensitive: SA is sA.
      [code language=”text”]
      1> create database TestDb;
      2> go

      Network packet size (bytes): 4096
      1 xact[s]:
      Clock Time (ms.): total 447 avg 447.0 (2.2 xacts per sec.)
      1> use testdb;
      2> go
      Changed database context to ‘TestDb’.

      Network packet size (bytes): 4096
      1 xact[s]:
      Clock Time (ms.): total 3 avg 3.0 (333.3 xacts per sec.)
      1> select filename from sys.sysfiles
      2> go
      filename
      ——————————————————————————————————————————————————————————————————————————————————————–
      C:\var\opt\mssql\data\TestDb.mdf
      C:\var\opt\mssql\data\TestDb_log.ldf
      [/code]

    • I then did a quick testing of advanced feature, like Clustered Columnstore Index (CCI). Yes, it’s available in SQL Server for Linux!
      [code language=”text”]
      1> create table Person (PersonID int, LastName nvarchar(255), FirstName nvarchar(255))
      2> go

      Network packet size (bytes): 4096
      1 xact[s]:
      Clock Time (ms.): total 28 avg 28.0 (35.7 xacts per sec.)
      1> create clustered columnstore index Person_CCI on Person;
      2> go

      Network packet size (bytes): 4096
      1 xact[s]:
      Clock Time (ms.): total 25 avg 25.0 (40.0 xacts per sec.)
      1>

      Network packet size (bytes): 4096
      1 xact[s]:
      Clock Time (ms.): total 1 avg 1.0 (1000.0 xacts per sec.)

      [/code]

    Overall, it looks pretty nice! I’ve got to say, I’m really impressed with Microsoft’s embrace of Linux. By the way, if you use Windows 10, I recommend Bash on Ubuntu on Windows. It’s in beta, but it works for me pretty well so far.

    Stay tuned for more. I’ll definitely write more as I play with this new toy!



沪ICP备19023445号-2号
友情链接